本文介绍了PayUMoney集成 - 如何计算哈希以便与响应进行比较?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
生成 Hash
用于发布
请求 $ hashSequence =key | txnid | amount | productinfo | firstname | email | udf1 |
。udf2 | udf3 | udf4 | udf5 | udf6 | udf7 | udf8 | udf9 | udf10;
$ hashVarsSeq = explode('|',$ hashSequence);
$ hashString ='';
foreach($ hashVarsSeq as $ hashVar){
$ hashString。= isset($ payObject ['params'] [$ hashVar])? $ payObject ['params'] [$ hashVar]:'';
$ hashString。='|';
}
$ hashString。= $ salt;
//生成哈希
$ hash = strtolower(hash('sha512',$ hashString));
获得成功的响应后,生成 Hash
$ retHashSeq = $ salt。'|'。$ status。'|||||||'。$ udf3。' 。$ udf2 '|'。$ udf1 '| '$量 '|'。$ txnid '|。|'。$电子邮件' |||' $键;
$ hash = hash(sha512,$ retHashSeq);
但是生成的 Hash
不匹配并通过 PayU
服务器返回 Hash
。
可能是什么问题?任何帮助,将不胜感激。
解决方案
看来你正试图重新实现。
我无法在当前版本的REST API中找到对 $ hashSequence
的模式的引用。
您是否考虑过使用?
Generating Hash
for Post
request
$hashSequence = "key|txnid|amount|productinfo|firstname|email|udf1|"
."udf2|udf3|udf4|udf5|udf6|udf7|udf8|udf9|udf10";
$hashVarsSeq = explode('|', $hashSequence);
$hashString = '';
foreach ($hashVarsSeq as $hashVar) {
$hashString .= isset($payObject['params'][$hashVar]) ? $payObject['params'][$hashVar] : '';
$hashString .= '|';
}
$hashString .= $salt;
//generate hash
$hash = strtolower(hash('sha512', $hashString));
After getting successful response generating Hash
$retHashSeq = $salt.'|'.$status.'||||||||'.$udf3.'|'.$udf2.'|'.$udf1.'|'.$email.'|||'.$amount.'|'.$txnid.'|'.$key;
$hash = hash("sha512", $retHashSeq);
But the generated Hash
doesn't match with the returned Hash
by the PayU
server.what could be the problem?? any help would be appreciated.
解决方案
It seems that you are trying to reimplement the PayU REST API.I can't find any reference to the pattern of your $hashSequence
in the current version of the REST API.
Have you considered using the official SDK?
这篇关于PayUMoney集成 - 如何计算哈希以便与响应进行比较?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!