php – 使用外部支付网关的电子商务库存管理

前端之家收集整理的这篇文章主要介绍了php – 使用外部支付网关的电子商务库存管理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题类似于 this one但有一个扭曲(所以旧问题的答案在以下场景中无效)

我有一个卖票的网站(PHP / MysqL).假设我只剩下一张票:

>买家A将车票放入购物车并进入支付网关页面(即paypal)
>门票被锁定5分钟,所以买家B不能买
>买家A等待5分钟,Paypal页面打开,什么都不做
>机票已解锁,因此买方B将其放入购物车并进入paypal页面
>买方A成功执行PayPal上的付款程序
>买方B成功执行PayPal的付款程序

我可以等待更长时间,但我认为这不会在更一般的情况下解决问题.而且,如果我这样做,可以制作某种DoS,将物品锁定在库存中很长一段时间.

什么是处理这种情况的最佳方法

所有支付网关都会进行回发以告知您(例如)支付参考等.大多数还会回发授权/认证信息,例如CSC/C++VV2检查结果,以便您(商家)对是否接受最终决定权付款与否.

收到回发后,您应该能够检查机票是否仍然“锁定”,如果没有,则通过支付网关发出付款撤销以取消付款.然后你需要显示一条消息’抱歉,超时超时请再试一次’

如果网关不支持“即时反转”样式功能,那么它们至少会支持某种“无效”功能,从而实际上不会从客户卡中取出资金,并且授权保持自动下降(通常在两天后),虽然在某些卡上可能需要更长的时间).对于(希望很小)超时的交易数量,这可能是可以接受的.值得监控多少交易超时,以便可以调整超时期限.

或者,如果票证不再被锁定(并且再次,如果网关支持它),则发回退款付款.

原文链接:https://www.f2er.com/php/137525.html

猜你在找的PHP相关文章