Commit e8c1403f by xiaoqing.gu

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

parent 3b459ef4
...@@ -115,6 +115,7 @@ void FMVipForward::request(const QJsonObject &reqJob) ...@@ -115,6 +115,7 @@ void FMVipForward::request(const QJsonObject &reqJob)
QNetworkAccessManager _nam; QNetworkAccessManager _nam;
auto reply = _nam.post(_req, reqData); auto reply = _nam.post(_req, reqData);
// 使用定时器处理超时 // 使用定时器处理超时
QEventLoop loop; QEventLoop loop;
connect(&_nam, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit())); connect(&_nam, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
...@@ -277,6 +278,20 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob) ...@@ -277,6 +278,20 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
transObj["codeAmount"] = SESSIONDATA_INT("codeAmount"); transObj["codeAmount"] = SESSIONDATA_INT("codeAmount");
transObj["isUseScore"] = SESSIONDATA_INT("isUseScore"); 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; QJsonArray couponsArr;
for(auto code : SESSIONDATA_MAP("payCouponMap").keys()) for(auto code : SESSIONDATA_MAP("payCouponMap").keys())
{ {
...@@ -284,6 +299,21 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob) ...@@ -284,6 +299,21 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
} }
transObj["coupons"] = couponsArr; 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; fmjob["transaction"] = transObj;
} }
void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob) void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
...@@ -299,6 +329,8 @@ 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"]; fmjob["memberTransId"] = job["fm_id"];
QJsonArray coupons = posTransObj["coupons"].toArray(); // 优惠券 QJsonArray coupons = posTransObj["coupons"].toArray(); // 优惠券
int codeAmount=0, scoreAmount=0, cashAmount=0, thirdAmount=0; int codeAmount=0, scoreAmount=0, cashAmount=0, thirdAmount=0;
transObj["thirdPayType"] = 4; transObj["thirdPayType"] = 4;
foreach (QJsonValue pay_v , pay_ids) foreach (QJsonValue pay_v , pay_ids)
...@@ -309,9 +341,9 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob) ...@@ -309,9 +341,9 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
codeAmount = pay_ob["paid_total_amount"].toInt(); codeAmount = pay_ob["paid_total_amount"].toInt();
} else if(type == "25") { } else if(type == "25") {
scoreAmount = pay_ob["paid_total_amount"].toInt(); scoreAmount = pay_ob["paid_total_amount"].toInt();
} else if(type == "77") { // 代金券 } /*else if(type == "77") { // 代金券
coupons.append(pay_ob["code"].toString()); 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(); thirdAmount = pay_ob["paid_total_amount"].toInt();
transObj["thirdPayTransId"] = pay_ob["pay_transId"]; transObj["thirdPayTransId"] = pay_ob["pay_transId"];
......
...@@ -46,6 +46,7 @@ Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相 ...@@ -46,6 +46,7 @@ Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相
#define SESSIONDATA_STRING(key) SESSIONDATA(key).toString() #define SESSIONDATA_STRING(key) SESSIONDATA(key).toString()
#define SESSIONDATA_INT(key) SESSIONDATA(key).toInt() #define SESSIONDATA_INT(key) SESSIONDATA(key).toInt()
#define SESSIONDATA_JSONOBJECT(key) SESSIONDATA(key).toJsonObject() #define SESSIONDATA_JSONOBJECT(key) SESSIONDATA(key).toJsonObject()
#define SESSIONDATA_JSONARRAY(key) SESSIONDATA(key).toJsonArray()
#define SESSIONDATA_MAP(key) SESSIONDATA(key).toMap() #define SESSIONDATA_MAP(key) SESSIONDATA(key).toMap()
#define SESSIONDATA_COUPONMAP(key) FMVipForward::instance()->getCouponMap(key) #define SESSIONDATA_COUPONMAP(key) FMVipForward::instance()->getCouponMap(key)
#define SESSIONDATA_ADD(key, value) FMVipForward::instance()->addSessionData(key, value) #define SESSIONDATA_ADD(key, value) FMVipForward::instance()->addSessionData(key, value)
......
...@@ -63,8 +63,13 @@ void FMVipOrder::on_pay_btn_clicked() ...@@ -63,8 +63,13 @@ void FMVipOrder::on_pay_btn_clicked()
{ {
SESSIONDATA_ADD("payCouponMap", orderInfo->selectCouponMap); SESSIONDATA_ADD("payCouponMap", orderInfo->selectCouponMap);
QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text()); QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text());
// SESSIONDATA_ADD("codeAmount", QString::number((ui->pay_edit->text().toDouble()) * 100 ));
SESSIONDATA_ADD("codeAmount", codeAmountStr); 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_btn->setEnabled(false);
ui->pay_chk->setEnabled(false); ui->pay_chk->setEnabled(false);
...@@ -97,6 +102,10 @@ void FMVipOrder::onItemClicked(QListWidgetItem *item) ...@@ -97,6 +102,10 @@ void FMVipOrder::onItemClicked(QListWidgetItem *item)
FMMsgWnd::WarningWnd("请注意代金券总额已超过待付金额!"); FMMsgWnd::WarningWnd("请注意代金券总额已超过待付金额!");
} }
} }
//修改取消选券后的金额不变的bug
oldPayText = DOUBLE_STR(orderInfo->getMaxWillPay());
setWillPayText(); setWillPayText();
} }
...@@ -158,5 +167,8 @@ void FMVipOrder::on_pay_edit_textChanged(const QString &text) ...@@ -158,5 +167,8 @@ void FMVipOrder::on_pay_edit_textChanged(const QString &text)
} else { } else {
oldPayText = text; oldPayText = text;
ui->pay_max->setText(""); ui->pay_max->setText("");
//修改取消选券后的金额不变的bug
ui->pay_edit->setText(text);
} }
} }
...@@ -92,6 +92,11 @@ private: ...@@ -92,6 +92,11 @@ private:
return isEnough; return isEnough;
} }
double getCouponAmount()
{
return _couponAmount;
}
void setUseScore(bool isUse) void setUseScore(bool isUse)
{ {
if(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