微信重复提交转账已提交勿重复支付是怎么回事

&如何避免订单重复支付?
如何避免订单重复支付?
日08时20分来源:
咖友提问: 如何设计避免订单出现重复支付的逻辑?
问题补充:假设有这么一种情况:
订单已下单成功并且正处于支付页面,用户调起支付网关进行支付。支付成功了一次,但是由于某种情况导致未接收到银行返回的【支付成功】等信号,系统此时还是认为未支付成功。用户此时又支付了一次并且成功了。
如果用户出现了2次支付并且都成功了,后台逻辑退款这一块如何设计?
是否可以避免这种情况的发生?如果可以怎么去避免呢。
来自 @妖之皇 的回答:
一、后台设计逻辑:
1、参与的主体:
电商系统;
网银或者第三方支付平台;
电商用的结算平台(如:商户支付宝和商户翼支付)
2、设计的主要流程:
电商系统调起网关支付,订单跳转到网银或者第三方支付平台中进行实际支付,这时订单中包含的信息是由电商用的结算平台先生成的一个支付订单信息(这个支付信息包含与电商系统与网银或者第三方支付平台的关联);用户在网银或者第三方支付平台中进行实际支付(这个支付交互是网银或者第三方支付平台与结算平台的交互),成功之后才是结算平台反馈支付信息给电商系统。下列图中:
①是用户调起网关支付,订单跳转到网银或者第三方支付平台中进行实际支付;
②是用户支付成功后,订单反馈至电商系统。
现在出现重复付款的问题就是出现在中的网银或者第三方支付平台到电商用的结算平台出现了延迟的情况,导致在电商系统中的订单一直处于未付款状态,部分用户以为未支付就最终产生了重复付款。
二、如何避免
针对这个问题,思考了各种场景以及情况,这种模式是无法避免重复付款的(必须得看结算平台的处理效率-一般情况下还是比较好的,还是少有延迟的情况)。只能后台检测重复付款的订单,异常走退款流程。
除非系统本身具有支付平台的功能。
三、延伸问题,如何处理因为支付成功后因延迟回调而订单被取消
这个问题的出现背景也是因为第三方结算平台延迟反馈而造成用户错以为没有支付而取消订单或者是系统到时时自动取消订单。
解决办法:建立异常处理机制。 结算平台延迟返回成功的支付信息给电商系统时,如果判断出此订单已经取消。则进入异常处理机制,更改订单为已收款状态,并再次扣减订单中库存以及各种优惠(例如:价保,返利,促销费,优惠等等)的回退。当然再此扣减的时候需要先判断相关产品的库存以及用户的各种优惠是否满足订单的扣减,不满足则不允许转化。
这里是应该先判断再次扣减的库存以及各种优惠,再修改订单状态,步骤以及相关的支付信息为成功。
本文由PMCAFF产品经理社区会员原创发布于社区(),未经许可,禁止转载。微信支付签名提交到微信服务器的sign与微信返回sign不一致问题
微信支付的第二张开发模式,可以通过提交XML包含签名(也就是sign)到服务器生成预付订单,微信会返回预付订单信息,其中包括二维码内容,反回内容中也会包含一个sign,但是这个sign跟我之前提交到微信的sign不一样,并且使用微信返回的二维码信息进行支付后,返回的sign又不同,求解,怎么来校验这个签名,开始以为是提交的签名错误,但通过微信提供的https://pay./wiki/tools/signverify/这个地址进行交易发现我提交的参数加密串是正确的,试问微信返回的sign有什么奥秘么?要怎么进行对sign校验,防止别人恶意向服务器提交支付完成的信息。
肯定不一样啊, 内容都不一样.
你校验这个sign的方式和你签名提交的数据方式一样.
也就是根据微信返回的数据做一次签名,然后判断你算出来的sign与微信返回的sign是否一致.
一致则表示数据正确, 是微信返回的, 不一致就不是.
引用来自“NamoAmitabha”的评论肯定不一样啊, 内容都不一样.
你校验这个sign的方式和你签名提交的数据方式一样.
也就是根据微信返回的数据做一次签名,然后判断你算出来的sign与微信返回的sign是否一致.
一致则表示数据正确, 是微信返回的, 不一致就不是.哦 &这样哦,感谢,我试试哈}

我要回帖

更多关于 微信浏览器重复提交 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信