PayU 网络结账 - 校验和失败
PayU web checkout - checksum failed
我在尝试与 PayU 集成时不断收到 Checksum failed
错误。从我在文档中看到的内容来看,集成应该很简单,但我认为我弄乱了哈希生成。特别是,我不确定如何处理 udf
字段。
这是我计算哈希值的方式:
$seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
$hash = strtolower(hash("sha512", $seq));
我已经验证了键值和盐值,但 |||||||||||
部分对我来说看起来很可疑。我没有任何用户定义的字段;这是应该怎么做吗?
此错误仅在表单中的值和
中发生
$seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
不匹配所以比较你肯定会发现不同的东西,并且会纠正以消除这个错误。
在此要指出两点官方文档中可能没有的内容:
- 包含金额的字符串应该以“.00”结尾。如果您必须手动执行,请添加它们。
- 这是大多数人必须通过艰难的方式弄清楚的一个:
您只能使用 11 个 UDF(用户定义的字段)。要么你应该有像
udf1|udf2|udf3
这样的值,要么有管道而不是像 |
这样的值。否则校验和将失败。如果您没有传递任何 udfs,请添加 11 个管道。
只需将散列转换为小写。
我个人花了几个小时试图解决 checksum failed
问题,这要归功于 payumoney 糟糕的文档。
我在尝试与 PayU 集成时不断收到 Checksum failed
错误。从我在文档中看到的内容来看,集成应该很简单,但我认为我弄乱了哈希生成。特别是,我不确定如何处理 udf
字段。
这是我计算哈希值的方式:
$seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
$hash = strtolower(hash("sha512", $seq));
我已经验证了键值和盐值,但 |||||||||||
部分对我来说看起来很可疑。我没有任何用户定义的字段;这是应该怎么做吗?
此错误仅在表单中的值和
中发生$seq = "xxxxxxxx|11aa|400.00|Cleaning|Ankush|ankush@gmail.com|||||||||||xxxxxx";
不匹配所以比较你肯定会发现不同的东西,并且会纠正以消除这个错误。
在此要指出两点官方文档中可能没有的内容:
- 包含金额的字符串应该以“.00”结尾。如果您必须手动执行,请添加它们。
- 这是大多数人必须通过艰难的方式弄清楚的一个:
您只能使用 11 个 UDF(用户定义的字段)。要么你应该有像
udf1|udf2|udf3
这样的值,要么有管道而不是像|
这样的值。否则校验和将失败。如果您没有传递任何 udfs,请添加 11 个管道。
只需将散列转换为小写。
我个人花了几个小时试图解决 checksum failed
问题,这要归功于 payumoney 糟糕的文档。