mysql - 如果服务器崩溃,处理付款响应?
问题描述
当我发起一笔交易以说 Citrus、Ccavenue 或 PayUmoney 或任何支付网关时会发生什么,并且钱在客户端被扣除并且我的服务器在它即将接收响应的时间失败,并且响应我需要为该特定客户更新数据库中的几列?应该怎么处理?我用Mysql做数据库,用Laravel。
解决方案
这可以通过一个单独的队列服务来处理,比如 Laravel 队列(https://laravel.com/docs/5.6/queues)
还要确保你有一个 API 来检查支付状态。大多数支付网关都提供 API 接口来检查支付状态。
付款周期如下
- 客户 - 获取付款详情
- 客户端 - 从支付网关请求支付,同时将任务添加到队列服务以检查支付状态并更新您的数据库。
- 队列服务 - 从网关请求支付状态并更新数据库
- 客户 - 从数据库中选择付款状态
队列服务应该作为与客户端应用程序隔离的服务器进程运行。因此您的付款周期不会因任何中断/延迟(网络超时、服务器中断等...)而中断
推荐阅读
- java - 用于 n 位的 Java 计算器
- javascript - 在旧数据之外添加数据,而不是用 fs writeFile 覆盖它们
- python-3.x - 具有起始值的 Python hashlib SHA256
- reactjs - 如何从打字稿中同步函数中的异步函数获取结果?
- flutter - 在 Flutter Provider 中如何检查消费者收到的数据何时更新
- reactjs - 如何通过反应添加新配方?
- r - 子集数据,如果列条目包含字母
- ajax - 在 MVC ASP.net 中使用 AJAX 为 SPA 创建返回到先前状态的按钮
- mysql - MySQL 实例无法通过本地主机访问
- android - 在 Kotlin 的数据类声明中循环?