SidneyTTW
SidneyTTW
@gdoudeng 当时没调整这个库,而是**直接监听了重新打开app的事件,然后从自己app的后台拿到最新的支付状态**。 好处是除了这里的`android微信支付成功并且点了微信里的按钮,也没回调`的问题,还能解决`微信支付成功后直接关闭微信`或者`刚转跳到微信就直接关闭微信`之类的情况。 坏处是对alipay有些极少见的正确支付的情况没法监测到,比如,`转跳到支付宝后,没支付,手动切换回原来的app,过了一会儿想起来了又手动切换到alipay支付`。这类情况用户在自己的app里直接看到的一开始可能有问题,但只要app是以后台数据为准的,刷新后应该就没问题了 - 监听是用`react-native`的`AppState`完成的,`AppState.addEventListener("change", 你的回调函数);` - 打开app,回调函数的参数值是字符串`active` - 查询后台状态就根据你自己的后台来了 然后记得要注意的是: - 这个回调函数被调用时,如果立刻问自己的后台要状态,可能因为微信支付通知后台是异步的,当时后台还不知道已经成功了。建议要么等一会儿再问后台要状态,要么带点间隔重试几次 - 如果对每次支付,都新加了listener`AppState.addEventListener("change", 你的回调函数);`,要记得每次新的支付前要`AppState.removeEventListener("change", 你原来的回调函数);`,建议是上次支付成功/失败时立即`removeEventListener`