react-native-wechat icon indicating copy to clipboard operation
react-native-wechat copied to clipboard

WeChat.pay支付成功有返回,但是取消支付没有返回值

Open masterou opened this issue 7 years ago • 5 comments

WeChat.pay(payData).then(function(req){ if(req.errCode==0){ toastShort('支付成功');//执行 }else if(req.errCode==-2){ toastShort('您已取消支付');//不执行 }else{ toastShort('支付失败');//不执行 }

我确定添加了WXPayEntryActivity这个类,就是在取消支付或支付失败的时候没有回调执行,只有在支付成功后有回调执行,不知道是什么原因?

masterou avatar Feb 25 '18 04:02 masterou

已经解决了,用监听就可以收到返回值了 wechat.addListener( 'PayReq.Resp', (response) => { if (response.errCode == 0) { toastShort('支付成功'); } else if(response.errCode==-2) { toastShort('用户取消'); } else { toastShort('支付失败'); } } );

masterou avatar Feb 25 '18 09:02 masterou

取消支付等异常情况在Promise reject里操作就可以了,不用监听

WeChat.pay(payData)
  .then(function(req) {
    if (req.errCode == 0) {
      toastShort('支付成功'); //执行
    }
  })
  .catch(e => {
    if (e.code === -2) {
      toastShort('您已取消支付');
    } else {
      toastShort('支付失败');
    }
  });

kokororin avatar Feb 25 '18 11:02 kokororin

我之前也试过这个,但是我取消支付后它根本就没捕获到异常,catch里面没有任何反应,所以我只能用监听了

masterou avatar Feb 27 '18 03:02 masterou

@messense 监听事件写在什么地方?我的问题是,可以支付,但是不管成功还是失败,都没有回调,你这个监听事件是写在哪里的?

mtfCloud avatar Jun 01 '19 09:06 mtfCloud

@masterou 请问在调用Pay之前添加还是在调用之后?

Liqiankun avatar Oct 20 '20 12:10 Liqiankun