收藏
回答

微信支付成功后,app没有回调

微信支付成功后,不点击返回商户,通过home键或上滑切换app的形式回到本app,app没有回调(这点由于需要支付状态的场景,所以使用了返回后去多次查询服务器支付订单状态来处理)

但是,在支付成功之后,要是没有走微信制定的流程,不点击返回商户的按钮返回app的情况下,下一次(具体时间暂不可知,只要app不完全退出的短时间内)调起微信支付,会直接走微信支付成功的回调,完全忽略新的支付请求

请问大家有好的解决方式吗

最后一次编辑于  2023-06-21
回答关注问题邀请回答
收藏

4 个回答

  • Memory
    Memory
    2023-06-25

    前端不是100%可靠,支付结果应以异步支付结果或者查单结果为准

    2023-06-25
    有用 1
    回复
  • 我
    2023-06-25

    这里做个总结吧,首先感谢大家伙的回答,留个总结给后来踩坑的记录下

    基本上来说的话,肯定是要后端做异步支付结果通知的,这个是必须的,前端结果不可靠,不过其实我的主要问题是回调的时候,安卓端微信支付会有个bug,也不知道算不算是bug,在其他大型APP上也可以复现

    在安卓端上测试(设备是android 11的IQOO),当支付不按微信支付设计的流程走,支付成功或者失败之后

    重点来了:你不点返回商户或者不正常返回的话,直接上滑(就像切换程序一样),然后又回到本APP,这时候微信是不会回调通知的。此时你再次发起支付,会直接回调上一次的回调结果,不管支付跟失败都会触发上述问题

    解决方法的话,也比较简单,就是自己记录发起支付的时候的prepayId,然后在回调的WxPayEntryActivity中抛出去跟发起支付的作比较,或者图省事就保存个全局变量啥的,然后报个错就完事了,不要走后续支付成功流程啥的


    2023-06-25
    有用
    回复
  • 维她命系
    维她命系
    2023-06-22

    支付的时候有个参数 notify_url 设置一下,可以异步接收订单支付成功通知消息。

    2023-06-22
    有用
    回复 2
    • 明白
      明白
      2023-09-11
      哥,这是app,你设置啥,设置了也是后台收到消息。但是app需要等微信回调结果过来,触发一定的ui更新。现在app收不到。页面会一直停留。用户会以为没支付
      2023-09-11
      回复
    • 此岸即彼岸
      此岸即彼岸
      2023-12-15
      我是设置了notify_url,看日志也发送了,但是就是收不到,请求头和body都没有,也没有人工客服
      2023-12-15
      回复
  • 㐅卝
    㐅卝
    发表于小程序端
    2023-06-21

    异步通知啊,这个靠谱很多

    2023-06-21
    有用
    回复
登录 后发表内容