当我发起一笔交易以说 Citrus、Ccavenue 或 PayUmoney 或任何支付网关时会发生什么,并且钱在客户端被扣除并且我的服务器在它即将接收响应的时间失败,并且响应我需要为该特定客户更新数据库中的几列?应该怎么处理?我用Mysql做数据库,用Laravel。
问问题
458 次
1 回答
2
这可以通过一个单独的队列服务来处理,比如 Laravel 队列(https://laravel.com/docs/5.6/queues)
还要确保你有一个 API 来检查支付状态。大多数支付网关都提供 API 接口来检查支付状态。
付款周期如下
- 客户 - 获取付款详情
- 客户端 - 从支付网关请求支付,同时将任务添加到队列服务以检查支付状态并更新您的数据库。
- 队列服务 - 从网关请求支付状态并更新数据库
- 客户 - 从数据库中选择付款状态
队列服务应该作为与客户端应用程序隔离的服务器进程运行。因此您的付款周期不会因任何中断/延迟(网络超时、服务器中断等...)而中断
于 2018-07-13T08:14:02.033 回答