php - 集成支付网关时如何避免金额篡改?

标签 php payment-gateway

我正在 php 中集成支付网关。网关提供商告诉我,它包含高危漏洞(即金额篡改)。我不是支付网关集成方面的专家。如何防止金额篡改?

最佳答案

您可以采取一些措施来防止金额篡改。

  1. 校验和或哈希摘要。如果支付网关已实现此功能。这仅仅意味着生成您想要发送到支付网关的有效负载的哈希值并随其发送哈希值。网关还将生成哈希值并与发送给它的哈希值进行比较。如果匹配,则有效负载未被篡改,否则,它已被篡改,支付网关将丢弃该交易。 请向您的支付网关询问此事。这是最推荐的方法
  2. 在将付款发送到支付网关进行处理之前,请将交易详细信息记录到您的数据库中。必须记录金额、交易引用和货币。一旦您收到支付网关的响应,请使用您的交易引用调用支付网关交易查询端点,以直接从支付网关确认交易,然后使用您从支付中获得的交易金额、交易引用和币种验证您记录的交易金额、交易引用和币种网关。如果存在任何差异,请记录交易以解决争议,否则使用返回的交易状态更新您的交易记录。
  3. 2 仅在支付网关具有交易查询端点时才有效。如果您的支付网关没有交易查询端点,当您收到交易响应时,只需使用您从支付网关获取的交易金额、交易引用和币种验证您记录的交易金额、交易引用和币种即可。如果存在任何差异,请记录交易以解决争议,否则使用返回的交易状态更新您的交易记录。 (不过,我建议不要使用没有端点的支付网关来查询您的交易)

I recommend using 1 and 2 together if you can.

关于php - 集成支付网关时如何避免金额篡改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147485/

相关文章:

php - 使用 Ajax 查询的 joomla 组件开发

PHPCodeSniffer 规则限制每个函数/方法的最大指令数

php - 取消订阅每月定期付款?

cordova - 在 iPhone 应用程序中购买实体产品

php - FB api - 从页面邮箱中提取未读消息数

php - 混淆添加 2 个时间值

php - 2checkout测试支付模拟

javascript - 如何使用JS/Jquery读取post参数

javascript - Laravel 显示 JS 确认对话框与另一个 JS 函数内联

extjs - 如何将支付网关集成到使用 ExtJs 等 javascript 框架创建的应用程序中?