小程序
小游戏
企业微信
微信支付
扫描小程序码分享
问题:uni.requestPayment必须点击完成才能判断用户支付成功进入success/fail/complete回调。
那么充值完毕不点击完成直接退出小程序的情况,后续的函数怎么放在哪里调用?
需求:蓝牙支付:用户支付完毕,再给表具下发指令 进行充值。
场景:很多用户支付完毕直接退出小程序或者退出后台,就不会进入支付回调。
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
设置定时器,调起支付后,每2秒查询订单是否支付成功,
若支付成功,下发指令并清除定时器
取消支付/支付失败时清除定时器,每次唤起支付页面订单号不同
1.
data() {
return {
timer: null, //定时器名称
};
}
2.
requestPayment() {
const that = this
uni.requestPayment({
nonceStr:nonceStr,
package:package,
paySign: paySign,
signType:signType,
timeStamp:timeStamp,
success(res) { },
fail(err) {
clearInterval(that.timer); // 清除定时器
that.timer = null;
})
that.timer = setInterval(() => {
that.asyncorderQuery(); // 每3秒查询订单
}, 3000)
},
3.
充值成功的接口里再写一个清除定时器。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
支付结果要以服务端接收到的异步支付结果通知为准,不要去依赖前端回调判断
https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
设置定时器,调起支付后,每2秒查询订单是否支付成功,
若支付成功,下发指令并清除定时器
取消支付/支付失败时清除定时器,每次唤起支付页面订单号不同
1.
data() {
return {
timer: null, //定时器名称
};
}
2.
requestPayment() {
const that = this
uni.requestPayment({
nonceStr:nonceStr,
package:package,
paySign: paySign,
signType:signType,
timeStamp:timeStamp,
success(res) { },
fail(err) {
clearInterval(that.timer); // 清除定时器
that.timer = null;
}
})
that.timer = setInterval(() => {
that.asyncorderQuery(); // 每3秒查询订单
}, 3000)
},
3.
充值成功的接口里再写一个清除定时器。
支付结果要以服务端接收到的异步支付结果通知为准,不要去依赖前端回调判断
https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml