场景描述:
NATIVE 支付模式二接入PC网站,用户点击确认订单后调用统一下单API 生成预订单返回支付二维码链接,前端展示二维码,用户支付成功跳转成功页
解决方案:
方案一:websocket等长连接
问题:长连接必须等待微信支付异步回调通知成功后才能唤醒前端跳转页面,如果微信支付通知异常,如何处理?
图示:
方案二:前端当前页面ajax轮询查询订单状态
问题:
1)在用户停留当前页面未支付时,需要判断用户有无进行扫码操作,2分钟轮询限制(两分钟内用户没有扫码关闭页面轮询),但是无法通过图示字段判定用户是否扫码,
图示:
总结:
1)微信API是否提供判定用户是否扫码
2)各位大佬有没有更好的解决方案
native原生扫码支付,增加支付成功后,页面跳转 这个网站有源码 https://www.zhangshaobiji.cn/ym/ 只要修改一下配置就可以用了 非常简单
模式2的话就需要获取交易ID号,通过ID号查询了
没有提供这个API。
没有这个的话,那测试用例中的
1、用户扣款成功,未收到通知
问题:这个要从用户扫码的那一刻起,记录时间到五分钟后,
1).如果用户未离开页面,就是在本页面的定时器执行查找订单,如果是用户扣款成功,未收到通知 情况, 更改订单状态,返回用户成功,
2)如果用户扫码后立刻关闭本页面,后台会记录用户这次订单支付,在五分钟后执行定时器同步状态信息,
2、订单被判定为支付失败情况,如何处理
1).如果用户未离开页面,就是在本页面的定时器执行查找订单,如果是支付失败,用户未扣款情况,关闭订单,重新设置订单号,以便用户重新发起用户支付
2)如果用户扫码后立刻关闭本页面,后台会记录用户这次订单支付,在五分钟后执行定时器同步信息,如果订单为支付失败,关闭订单,重新设置订单号,以便用户重新发起用户支付
这个在测试用例中明确写出来的,应该是有解决方案的吧
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4普通商户的这个模式 按这个时序图 扫码后有回调到后台的
服务商支付就没有了