收藏
回答

NATIVE 支付接入PC网站,如何判断用户是否扫描二维码,支付成功后跳转成功页


场景描述:

     NATIVE 支付模式二接入PC网站,用户点击确认订单后调用统一下单API 生成预订单返回支付二维码链接,前端展示二维码,用户支付成功跳转成功页


解决方案:

    方案一:websocket等长连接 

                 问题:长连接必须等待微信支付异步回调通知成功后才能唤醒前端跳转页面,如果微信支付通知异常,如何处理?

                 图示:

                    

方案二:前端当前页面ajax轮询查询订单状态

                问题:

                            1)在用户停留当前页面未支付时,需要判断用户有无进行扫码操作,2分钟轮询限制(两分钟内用户没有扫码关闭页面轮询),但是无法通过图示字段判定用户是否扫码,

                                    图示:

                                                 

总结:

        1)微信API是否提供判定用户是否扫码

        2)各位大佬有没有更好的解决方案  


    

最后一次编辑于  07-24
回答关注问题邀请回答
收藏

2 个回答

  • 支付技术助手8
    支付技术助手8
    07-24

    没有提供这个API。

    07-24
    赞同
    回复 3
    • 星夜无痕
      星夜无痕
      07-24

      没有这个的话,那测试用例中的

          1、用户扣款成功,未收到通知

                  问题:这个要从用户扫码的那一刻起,记录时间到五分钟后,

                                  1).如果用户未离开页面,就是在本页面的定时器执行查找订单,如果是用户扣款成功,未收到通知 情况, 更改订单状态,返回用户成功,

                                  2)如果用户扫码后立刻关闭本页面,后台会记录用户这次订单支付,在五分钟后执行定时器同步状态信息,

          2、订单被判定为支付失败情况,如何处理

          

                                 1).如果用户未离开页面,就是在本页面的定时器执行查找订单,如果是支付失败,用户未扣款情况,关闭订单,重新设置订单号,以便用户重新发起用户支付

                                  2)如果用户扫码后立刻关闭本页面,后台会记录用户这次订单支付,在五分钟后执行定时器同步信息,如果订单为支付失败,关闭订单,重新设置订单号,以便用户重新发起用户支付


      07-24
      回复
    • 星夜无痕
      星夜无痕
      07-24

      这个在测试用例中明确写出来的,应该是有解决方案的吧


      07-24
      回复
    • 星夜无痕
      星夜无痕
      07-24



      07-24
      回复
  • 凸囧凸
    凸囧凸
    07-24

    https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4普通商户的这个模式  按这个时序图  扫码后有回调到后台的

    服务商支付就没有了


    07-24
    赞同
    回复 1
    • 星夜无痕
      星夜无痕
      07-24
      谢谢,但是我使用的是模式二
      07-24
      回复