小程序
小游戏
企业微信
微信支付
扫描小程序码分享
微信支付成功后,不点击返回商户,通过home键或上滑切换app的形式回到本app,app没有回调(这点由于需要支付状态的场景,所以使用了返回后去多次查询服务器支付订单状态来处理)
但是,在支付成功之后,要是没有走微信制定的流程,不点击返回商户的按钮返回app的情况下,下一次(具体时间暂不可知,只要app不完全退出的短时间内)调起微信支付,会直接走微信支付成功的回调,完全忽略新的支付请求
请问大家有好的解决方式吗
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
前端不是100%可靠,支付结果应以异步支付结果或者查单结果为准
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这里做个总结吧,首先感谢大家伙的回答,留个总结给后来踩坑的记录下
基本上来说的话,肯定是要后端做异步支付结果通知的,这个是必须的,前端结果不可靠,不过其实我的主要问题是回调的时候,安卓端微信支付会有个bug,也不知道算不算是bug,在其他大型APP上也可以复现
在安卓端上测试(设备是android 11的IQOO),当支付不按微信支付设计的流程走,支付成功或者失败之后
重点来了:你不点返回商户或者不正常返回的话,直接上滑(就像切换程序一样),然后又回到本APP,这时候微信是不会回调通知的。此时你再次发起支付,会直接回调上一次的回调结果,不管支付跟失败都会触发上述问题
解决方法的话,也比较简单,就是自己记录发起支付的时候的prepayId,然后在回调的WxPayEntryActivity中抛出去跟发起支付的作比较,或者图省事就保存个全局变量啥的,然后报个错就完事了,不要走后续支付成功流程啥的
支付的时候有个参数 notify_url 设置一下,可以异步接收订单支付成功通知消息。
异步通知啊,这个靠谱很多
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
前端不是100%可靠,支付结果应以异步支付结果或者查单结果为准
这里做个总结吧,首先感谢大家伙的回答,留个总结给后来踩坑的记录下
基本上来说的话,肯定是要后端做异步支付结果通知的,这个是必须的,前端结果不可靠,不过其实我的主要问题是回调的时候,安卓端微信支付会有个bug,也不知道算不算是bug,在其他大型APP上也可以复现
在安卓端上测试(设备是android 11的IQOO),当支付不按微信支付设计的流程走,支付成功或者失败之后
重点来了:你不点返回商户或者不正常返回的话,直接上滑(就像切换程序一样),然后又回到本APP,这时候微信是不会回调通知的。此时你再次发起支付,会直接回调上一次的回调结果,不管支付跟失败都会触发上述问题
解决方法的话,也比较简单,就是自己记录发起支付的时候的prepayId,然后在回调的WxPayEntryActivity中抛出去跟发起支付的作比较,或者图省事就保存个全局变量啥的,然后报个错就完事了,不要走后续支付成功流程啥的
支付的时候有个参数 notify_url 设置一下,可以异步接收订单支付成功通知消息。
异步通知啊,这个靠谱很多