微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这个问题类似于 this one但有一个扭曲(所以旧问题的答案在以下场景中无效)

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

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

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

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

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

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

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

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

原文地址:https://www.jb51.cc/php/137525.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐