我正在创建一个使用支付网关 DPS 的电子商务网站。支付网关只获取用户详细信息并返回支付是否成功。
我只是想知道是否有人有任何好的资源来制作可以安全处理大量交易的真正强大的支付页面。是否有针对大批量支付页面的经过充分测试的技术和策略?
最佳答案
您需要设计代码以确保数据处于有效状态。
您面临的最大责任是您发送数据以进行身份验证/捕获,然后,无论出于何种原因,您端的某些东西会失败。您已向客户收费,但出于某种原因,您并不知道这个事实!最终,一些愤怒的客户会开始通过电话对您大喊大叫。那是一个糟糕的时刻。
总体思路是采取一些保护措施,以便您可以识别这些类型的问题。这个问题应该是非常罕见的,即使它曾经发生过,所以修复困惑可能是一个手动过程。
这是我会做的:
- 设计一个跟踪付款的数据库表(我们称之为“付款”),并将其与您的“订单”表相关联(因此 payment.order_id 引用 order.id)。
- 当需要与您的网关交互时,设置一个新的支付记录,其中包含您将要传递给支付网关的所有非敏感数据。在您的付款表中有一个“状态”列,并将其设置为“待处理”
- 尝试与您的网关进行授权/捕获交易。收到回复后,将付款记录状态更新为“已批准”、“已拒绝”或“错误”,并保存所有相关元数据(拒绝原因、交易 ID 等)。如果网关超时,那可能只是一种“错误”,尽管您可能会重试一次或两次。
时不时地运行一个 cron 作业,查找“待处理”的付款记录,比方说,超过 30 秒。如果您发现任何问题,请 panic 并告诉开发人员/运营人员。
当然还有其他可能出错的地方,但这是我想到的一个大问题,我描述的策略是我在多个场合使用过的策略来降低风险。
关于php - 接受付款最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3209264/