【问题标题】:PayU web checkout - checksum failedPayU 网络结账 - 校验和失败
【发布时间】:2018-06-04 20:53:42
【问题描述】:

在尝试与 PayU 集成时,我不断收到 Checksum failed 错误。从我在文档中看到的内容来看,集成应该很简单,但我认为我搞砸了哈希生成。特别是,我不确定如何处理 udf 字段。

这是我计算哈希的方法:

$seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
$hash = strtolower(hash("sha512", $seq));

我已经验证了 key 和 salt 值,但 ||||||||||| 部分对我来说看起来很可疑。我没有任何用户定义的字段;这是应该怎么做的吗?

【问题讨论】:

  • Udf 值被正确处理,如果它们不存在则应该为空。您应该检查其他内容。
  • @Devesh 好的,谢谢! :-)

标签: php payumoney payu


【解决方案1】:

只需将 hash 转换为 小写

我个人花了几个小时试图解决 checksum failed 问题,这一切都归功于 payumoney 糟糕的文件。

【讨论】:

    【解决方案2】:

    只有当值在表单和

    中时才会发生此错误
    $seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
    

    不匹配所以比较你肯定会得到差异的东西并且会纠正以摆脱这个错误。

    想在此指出官方文档中可能没有的两件事:

    1. 包含金额的字符串应以“.00”结尾。如果您必须手动添加它们。
    2. 这是大多数人必须弄清楚的一种方法: 您只能使用 11 个 UDF(用户定义的字段)。要么你应该有像udf1|udf2|udf3 这样的值,要么有管道而不是像| 这样的值。否则校验和将失败。如果您没有通过任何 udfs,请添加 11 个管道。

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 2015-11-20
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2020-03-29
      相关资源
      最近更新 更多