Commit e8c1403f by xiaoqing.gu

1、支付接口增加商品字段 2、修改使用券时金额不正确的情况

parent 3b459ef4
......@@ -115,6 +115,7 @@ void FMVipForward::request(const QJsonObject &reqJob)
QNetworkAccessManager _nam;
auto reply = _nam.post(_req, reqData);
// 使用定时器处理超时
QEventLoop loop;
connect(&_nam, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
......@@ -277,6 +278,20 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
transObj["codeAmount"] = SESSIONDATA_INT("codeAmount");
transObj["isUseScore"] = SESSIONDATA_INT("isUseScore");
//增加amount和payAmount字段
transObj["amount"] = SESSIONDATA_INT("order_amount");
// int paidAmount = SESSIONDATA_INT("paid_amount");
// int codeAmount = SESSIONDATA_INT("codeAmount");
// double couponAmount;
// for(auto discount : SESSIONDATA_MAP("payCouponMap").keys())
// {
// couponAmount += discount.toDouble();
// }
transObj["payAmount"] = SESSIONDATA_INT("payAmount");
QJsonArray couponsArr;
for(auto code : SESSIONDATA_MAP("payCouponMap").keys())
{
......@@ -284,6 +299,21 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
}
transObj["coupons"] = couponsArr;
//向服务端发送的请求字段中增加商品行
QJsonObject posTransObj = job["transactions"].toObject();
QJsonArray posProdArray = posTransObj["products"].toArray();
QJsonArray prodArray;
foreach (QJsonValue v , posProdArray)
{
QJsonObject po = v.toObject();
QJsonObject o;
o["consumeNum"] = po["consume_num"];
o["price"] = po["price"];
o["productId"] = po["pid"];
prodArray.append(o);
}
transObj["products"] = prodArray;
fmjob["transaction"] = transObj;
}
void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
......@@ -299,6 +329,8 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
fmjob["memberTransId"] = job["fm_id"];
QJsonArray coupons = posTransObj["coupons"].toArray(); // 优惠券
int codeAmount=0, scoreAmount=0, cashAmount=0, thirdAmount=0;
transObj["thirdPayType"] = 4;
foreach (QJsonValue pay_v , pay_ids)
......@@ -309,9 +341,9 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
codeAmount = pay_ob["paid_total_amount"].toInt();
} else if(type == "25") {
scoreAmount = pay_ob["paid_total_amount"].toInt();
} else if(type == "77") { // 代金券
} /*else if(type == "77") { // 代金券
coupons.append(pay_ob["code"].toString());
} else if(type == "72" || type == "73" || type == "75" || type == "78" || type == "79" || type == "99") {
}*/ else if(type == "72" || type == "73" || type == "75" || type == "78" || type == "79" || type == "99") {
thirdAmount = pay_ob["paid_total_amount"].toInt();
transObj["thirdPayTransId"] = pay_ob["pay_transId"];
......
......@@ -46,6 +46,7 @@ Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相
#define SESSIONDATA_STRING(key) SESSIONDATA(key).toString()
#define SESSIONDATA_INT(key) SESSIONDATA(key).toInt()
#define SESSIONDATA_JSONOBJECT(key) SESSIONDATA(key).toJsonObject()
#define SESSIONDATA_JSONARRAY(key) SESSIONDATA(key).toJsonArray()
#define SESSIONDATA_MAP(key) SESSIONDATA(key).toMap()
#define SESSIONDATA_COUPONMAP(key) FMVipForward::instance()->getCouponMap(key)
#define SESSIONDATA_ADD(key, value) FMVipForward::instance()->addSessionData(key, value)
......
......@@ -63,8 +63,13 @@ void FMVipOrder::on_pay_btn_clicked()
{
SESSIONDATA_ADD("payCouponMap", orderInfo->selectCouponMap);
QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text());
// SESSIONDATA_ADD("codeAmount", QString::number((ui->pay_edit->text().toDouble()) * 100 ));
SESSIONDATA_ADD("codeAmount", codeAmountStr);
// double couponAmount = orderInfo->getCouponAmount();
// double payAmount = couponAmount + ui->pay_edit->text().toDouble();
SESSIONDATA_ADD("payAmount", codeAmountStr);
ui->pay_btn->setEnabled(false);
ui->pay_chk->setEnabled(false);
......@@ -97,6 +102,10 @@ void FMVipOrder::onItemClicked(QListWidgetItem *item)
FMMsgWnd::WarningWnd("请注意代金券总额已超过待付金额!");
}
}
//修改取消选券后的金额不变的bug
oldPayText = DOUBLE_STR(orderInfo->getMaxWillPay());
setWillPayText();
}
......@@ -158,5 +167,8 @@ void FMVipOrder::on_pay_edit_textChanged(const QString &text)
} else {
oldPayText = text;
ui->pay_max->setText("");
//修改取消选券后的金额不变的bug
ui->pay_edit->setText(text);
}
}
......@@ -92,6 +92,11 @@ private:
return isEnough;
}
double getCouponAmount()
{
return _couponAmount;
}
void setUseScore(bool isUse)
{
if(isUse) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment