先前我的支付都是先下单再支付,如果支付页面退出也会生成订单,但在支付成功后调取页面数据为空,订单号也是随机生成,无法在其后读取,一直想不通,最后发现使用常量const dddata = that.data便可以保存数据,便运行成功,就这,花了我好几天。。。。。。
话不多说,上代码
if (that.data.name !== "" && that.data.shop_address !== "" && that.data.phone_number !== "") {
const dddata = that.data
wx.cloud.callFunction({
name:"pay_cc",
data:{
outTradeNo: timestamp + timestamp + timestamp + 'ABC',
money: that.data.money * 100
},
success:res =>{
console.log("进行支付中",res)
wx.requestPayment({
timeStamp: res.result.payment.timeStamp,
nonceStr: res.result.payment.nonceStr,
package: res.result.payment.package,
signType: 'MD5',
paySign: res.result.payment.paySign,
success(res){
wx.showToast({
title: '支付成功',
}),
// wx.navigateTo({
// url: '../../home_pages/home-details/home-details?id=',
// })
wx.switchTab({
url: '../../home_pages/home/home',
}),
wx.cloud.callFunction({
name: "product_delet",
data: {},
success: function (res) {
console.log('购物车删除成功', res)
for (var i = 0; i < that.data.product.length; i++) {
wx.cloud.callFunction({
name: "inc_product_num",
data: {
product_id: that.data.product[i].product_id
},
success(res) {
console.log("销量自增成功", res)
},
fail(res) {
console.error("销量增加失败", res)
}
})
}
}
})
db.collection('order').add({
data:{
name: dddata.name,
phone_number: dddata.phone_number,
zitidian:dddata.shop_address,
beizhu: dddata.beizhu,
money: dddata.money,
product: dddata.product,
product_state: "送货中",
time: DATE,
},
success:function(res)
{
console.log('下单成功',res)
wx.cloud.callFunction({
name: "inc_product_num",
data: {
product_id: that.data.product[i].product_id
},
success(res) {
console.log("销量自增成功", res)
},
fail(res) {
console.error("销量增加失败", res)
}
})
},fail(res){
}
})
},
fail(res){
console.log('支付失败', res)
},
})
}
})
}