let _payno = res.data.data.pay.order_sn;
wx.requestPayment({
'timeStamp': res.data.data.pay.pay_result.timeStamp.toString(),
'nonceStr': res.data.data.pay.pay_result.nonceStr,
'package': res.data.data.pay.pay_result.package,
'signType': res.data.data.pay.pay_result.signType,
'paySign': res.data.data.pay.pay_result.paySign,
success: res => {
console.log('支付成功', res);
this.checkorder();
},
fail: res => {
wx.hideLoading();
console.log(wx.getStorageSync('userid'), "取消支付", _payno);
Primes.GetUserE({
user_id: wx.getStorageSync('userid'),
order_sn: _payno
}, "/cancel").then(res => {
console.log('用户取消支付', res);
}).catch(() => {
console.log('网络异常')
})
}
})
} else {
wx.hideLoading();
wx.showToast({
icon: 'none',
title: res.data.msg
});
return false;
}
}).catch(err => {
wx.hideLoading();
wx.showToast({
icon: 'none',
title: err + ''
});
console.log('错误121212', err)
return false;
})
},
有时候会fail回调的时候删除了订单(删除订单之前会检查订单如果是未支付或关闭就准许删除),但是过1秒后台异步回调里面显示用户支付成功?这是什么情况?
此处无论如何不能删除订单,应该继续流程,打开订单,显示待付款订单或者已支付订单。
你可能还不知道,有一种情况是,success和fail和complete都不会触发的。你这样的逻辑是必然会出问题的。