react-native-wechat
react-native-wechat copied to clipboard
WeChat.pay支付成功有返回,但是取消支付没有返回值
WeChat.pay(payData).then(function(req){ if(req.errCode==0){ toastShort('支付成功');//执行 }else if(req.errCode==-2){ toastShort('您已取消支付');//不执行 }else{ toastShort('支付失败');//不执行 }
我确定添加了WXPayEntryActivity这个类,就是在取消支付或支付失败的时候没有回调执行,只有在支付成功后有回调执行,不知道是什么原因?
已经解决了,用监听就可以收到返回值了 wechat.addListener( 'PayReq.Resp', (response) => { if (response.errCode == 0) { toastShort('支付成功'); } else if(response.errCode==-2) { toastShort('用户取消'); } else { toastShort('支付失败'); } } );
取消支付等异常情况在Promise reject里操作就可以了,不用监听
WeChat.pay(payData)
.then(function(req) {
if (req.errCode == 0) {
toastShort('支付成功'); //执行
}
})
.catch(e => {
if (e.code === -2) {
toastShort('您已取消支付');
} else {
toastShort('支付失败');
}
});
我之前也试过这个,但是我取消支付后它根本就没捕获到异常,catch里面没有任何反应,所以我只能用监听了
@messense 监听事件写在什么地方?我的问题是,可以支付,但是不管成功还是失败,都没有回调,你这个监听事件是写在哪里的?
@masterou 请问在调用Pay之前添加还是在调用之后?