我找到方案了。 瑞幸小程序是ABC三个货物提交订单,扣库存后,3个物品都进入待支付状态,就会调微信支付统一下单接口,生成好流水。A物品不会允许再次单独调用微信支付统一下单接口。 但是麦当劳点餐,因为没有购物车到商城订单环节,只有微信支付统一下单接口的环节,所以与瑞幸小程序不同。 淘宝做法是,ABC三个物品(三个在不同的店铺中)提交订单,进入待支付状态时,为每个店铺都生成不同的支付流水。支付时是可以三个流水一起进入支付把三个流水的加起来总金额一起去银行扣钱。
问一个微信支付下单前,限制重复支付的业务流程问调用微信支付下单接口,是可以同时多个进行的。问业务系统设计问题。请从后端的角度理解。 注:文中的支付订单是支付纬度,不是商城纬度的那个订单。 现在用户想结算购物车的A+B+C物品,生成一条微信支付订单,当弹出“确认支付”框的时候,用点关闭窗口(或者杀微信进程),这个微信支付订单会关闭并回调支付失败吗? 如果不会,那就会产生一情况,用户现在再次发起结算,但单独结算A物品,就会又生成一条微信支付订单了。因为微信支付关单接口要下单5分钟后才能关,所以第一笔微信支付订单是没关的(https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_3)。 你们是怎么防止A物品重复支付的? 第一种方案:结算ABC三个物品时的微信支付订单,要锁定三个物品的状态为处理中,让第二次单独结算A物品时不能发起支付,但是这样要用户等5分钟,用户体验就不是很好。 第二种方案:结算ABC三个物品时,生成了微信支付订单,用户看到小程序弹出“确认支付”那个按钮的框,但是关闭这个框,去结算A物品,生成一条新微信支付订单(因为金额不一样了)。那这样系统是没有限制A是否重复购买的。用户如果得到h5页面,看f12,其实可以同时调用jsapi根据prepare_id唤出“确认支付”那个窗口,然后都去支付。最后就要退款处理重复部分。 其实看麦当劳点餐,买ABC唤起“确认支付”弹窗后,点关闭窗口(或者杀微信进程),可以去买A,他们就不怕遇到作的用户,触发两个微信订单然后都支付吗?因为两个发起两次微信统一下单是可以先后执行,所以分布式锁拦不住的。 图: 确认支付弹框 [图片] 待支付状态 [图片]
2020-11-28同意楼上,这个定金和尾款属于两笔支付订单,跟支付没关系。只是你业务要一个购物订单有两笔支付订单就行了。
同一笔订单支付两次在H5做预售活动,同一笔订单号,可以拉起两次支付吗,先支付定金,然后支付尾款,如果申请退款的话,通过这个单号一次性退回金额
2020-11-28java @RequestMapping(produce="xml/utf-8")有个类似的名字,让返回变成xml
支付结果正常通知了,如何回复微信成功的xml呢后端怎么把这一段成功的xml返回给微信呢? [图片]
2020-11-28