场景:
NATIVE 支付接入PC网站,用户点击确认订单后调用统一下单API 生成预订单返回支付二维码链接,此时用户不做支付操作,关闭页面,再次支付该订单如何处理?
解决方案:
一:
经过测试,微信支付同一个订单(订单号&&支付金额相同)可以发起多个预支付订单,其中一个预订单被支付后,再去支付其他预订单会显示订单以支付,整个订单为支付成功,这里已经能够满足需求,支付成功后该订单无法再次生成预订单。所以在这个基础上,只要出现该场景,用户再次支付的时候重新为该订单生成预订单。
二:
生成预订单后记录下超时截止时间,二维码链接,支付成功后在删除记录,保证每个订单只要一个预付单。
总结:
因为项目中要接入的不止pc端的支付,后续还会接入app,小程序的,方案二的实现代码会比较麻烦,而且测试到预订单可以多个存在,微信开发团队这样设计有一定道理,所以暂时选择的是方案一,查看官方资料和文档 没有发现对这个问题的解决方案,所以过来提问使用方案一的话有无不良影响。
问题核心描述:
1、使用方案1 ,同订单生成多个预订单情况下,支付其中一个预订单后,订单状态已经改变为成功,支付其他预订单会显示订单以支付,其他预订单是否会自动关闭,如果不去关闭未支付的预订单会有什么影响,这里主要是不知道微信预订单的设计思想。
2、是否有更好的解决方案?
不会自动关闭,需要你调用关闭接口。你的方案是可行的。
是不是只要订单号不重复就可以重新发起订单?