小白一个,在看开源的“灵动商城”项目,也找朋友要了商户号测试支付。现在支付测试流程都通过了。遇到了支付后没法减少商品数量的问题。
1. Goods商品表比原作者的增加count(商品数量)字段,主要表结构:objectID,ACL,image,title,price,count,...
2.Orders订单表,主要表结构:objectID,amount,address,...
3.OrderGoodsMap订单商品表,主要表结构:objectID,ACL,goods,quantity,order,user,...
4.下面是支付代码,支付流程是通过的,注释的代码的本意是通过支付页的orderId匹配OrderGoodsMap表的order属性,如果相同,找出OrderGoodsMap表的goods,goods的编号和Goods商品表的objectID匹配,匹配到减少商品count数量(现在直接减一测试,还没做根据OrderGoodsMap的quantity数量减少)
写了个循环,是一个订单有购买多个商品的情况,需要一起减掉
现在不清楚哪里出错了,也不知道这样写对不对
5.微信编译报错,ReferenceError:count is not defined
这个应该是 // queryCount.set('count: ' - 1); 这的问题
6.大神帮我看看怎么解决,还有查询和循环对不对?
const AV = require('../../../utils/av-weapp.js')
Page({
data: {
orderId: ''
},
onLoad: function (options) {
var orderId = options.orderId;
var totalFee = options.totalFee;
this.setData({
orderId: orderId,
totalFee: totalFee
})
},
pay: function () {
var query = new AV.Query('Goods')
var that = this;
var paramsJson = {
body: '支付测试',
tradeNo: that.data.orderId,
totalFee: parseFloat(that.data.totalFee) * 100
}
AV.Cloud.run('pay', paramsJson).then(function (response) {
response = JSON.parse(response);
// 调用成功,得到成功的应答 data
// console.log(response);
// 发起支付
wx.requestPayment({
'timeStamp': response.timeStamp,
'nonceStr': response.nonceStr,
'package': response.package,
'signType': 'MD5',
'paySign': response.paySign,
'success': function (res) {
wx.showToast({
title: '支付成功'
});
wx.navigateTo({
url: '../list/list?status=1'
});
count.set('count: ' - 1);
count.save();
//支付成功后减少商品数量
// var query = new AV.Query('OrderGoodsMap');
// var that = this;
// var orderId = that.data.orderId;
// query.include('goods');
// query.equalTo('order', orderId);
// query.find().then(function (goodsObjects) {
// that.setData({
// goods: goodsObjects
// });
// for (var i = 0; i < goodsObjects.length; i++) {
// var goodsId = goodsObjects[i];
// var queryCount = new AV.Query('Goods');
// queryCount.include('count');
// queryCount.equalTo('objectId', goodsId);
// queryCount.find().then(function (setcount) {
// if (goodsId.get('goods') == setcount.get('objectId')) {
// queryCount.set('count: ' - 1);
// queryCount.save();
// }
// });
// }
// });
}
});
}, function (err) {
// 处理调用失败
console.log(err);
});
}
})