php - 接受付款最佳实践

标签 php e-commerce credit-card

我正在创建一个使用支付网关 DPS 的电子商务网站。支付网关只获取用户详细信息并返回支付是否成功。

我只是想知道是否有人有任何好的资源来制作可以安全处理大量交易的真正强大的支付页面。是否有针对大批量支付页面的经过充分测试的技术和策略?

最佳答案

您需要设计代码以确保数据处于有效状态。

您面临的最大责任是您发送数据以进行身份​​验证/捕获,然后,无论出于何种原因,您端的某些东西会失败。您已向客户收费,但出于某种原因,您并不知道这个事实!最终,一些愤怒的客户会开始通过电话对您大喊大叫。那是一个糟糕的时刻。

总体思路是采取一些保护措施,以便您可以识别这些类型的问题。这个问题应该是非常罕见的,即使它曾经发生过,所以修复困惑可能是一个手动过程。

这是我会做的:

  1. 设计一个跟踪付款的数据库表(我们称之为“付款”),并将其与您的“订单”表相关联(因此 payment.order_id 引用 order.id)。
  2. 当需要与您的网关交互时,设置一个新的支付记录,其中包含您将要传递给支付网关的所有非敏感数据。在您的付款表中有一个“状态”列,并将其设置为“待处理”
  3. 尝试与您的网关进行授权/捕获交易。收到回复后,将付款记录状态更新为“已批准”、“已拒绝”或“错误”,并保存所有相关元数据(拒绝原因、交易 ID 等)。如果网关超时,那可能只是一种“错误”,尽管您可能会重试一次或两次。

时不时地运行一个 cron 作业,查找“待处理”的付款记录,比方说,超过 30 秒。如果您发现任何问题,请 panic 并告诉开发人员/运营人员。

当然还有其他可能出错的地方,但这是我想到的一个大问题,我描述的策略是我在多个场合使用过的策略来降低风险。

关于php - 接受付款最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3209264/

相关文章:

调用 Volley 时出现 PHP 500 内部服务器错误

google-analytics - Google Analytics(分析)电子商务跟踪-多个帐户

c# - 覆盖然后设置为空

Angular 2 : add hyphen after every 4 digit in input , 卡号输入

php - 使用 javascript 使用单个选择框控制多选框

javascript - 2 var 数组在我更改 arrayToDataTable 输入后神秘地改变(谷歌图表线)

php - 将一个对象切成 3 block 并在 Blade 中查看它们 - Laravel - chunk 方法

mysql - 发票的历史价目表?

php - Stripe : change credit card number?

ios usaepay 磁条信用卡数据,发送处理