PayuMoney印度与Node js集成
我正在尝试集成一个nodejs应用程序来与PayUMoney集成。 我遵循PHP的指令和示例代码,并在node.js中实现,但我得到校验和错误 。
错误。 很抱歉,我们无法处理您的付款。
校验和失败。 请联系您的商家。
这里是代码。 前端
<form method="post" id="payu-payment-form" action="https://test.payu.in/_payment"> <input type="hidden" name="hash" value="hash"/> <input type="hidden" name="key" value="marchentKey"/> <input type="hidden" name="txnid" value="asc123"/> <input type="hidden" name="amount" value="1000" /> <input type="hidden" name="productinfo" value="Product 1"/> <input type="hidden" name="firstname" value="Amit" /> <input type="hidden" name="email" value="abc@gmail.com" /> <input type="hidden" name="phone" value="123423233" /> <input type="hidden" name="surl" value="http://localhost/success"/> <input type="hidden" name="furl" value="http://localhost/fail"/> <input type="hidden" name="service_provider" value="payu_paisa" /> <button class="" type="submit" formtarget="_blank" >Buy</button> </form>
Node.js的
var txnid='asc123'; var amount=1000; var produnctinfo='Product 1'; var firstname='Amit'; var email='abc@gmail.com'; var phone='123423233'; var surl='http://localhost/success'; var furl='http://localhost/fail'; var service_provider='payu_paisa'; var string = marchentKey +'|' +txnid+ '|' +amount+'|'+productinfo+'|'+firstname+'|'+email+'|'+phone+'|'+ surl +'|'+furl+'|'+service_provider+'|||||||'+salt; var hash=sha512(string);
var service_provider ='';
将“服务提供商”字段留空。 这应该工作。
我认为这个问题是你用自定义名称发布用户定义的variables。 使用udf1而不是使用service_provider。
<form method="post" id="payu-payment-form" action="https://test.payu.in/_payment"> <input type="hidden" name="hash" value="hash"/> <input type="hidden" name="key" value="marchentKey"/> <input type="hidden" name="txnid" value="asc123"/> <input type="hidden" name="amount" value="1000" /> <input type="hidden" name="productinfo" value="Product 1"/> <input type="hidden" name="firstname" value="Amit" /> <input type="hidden" name="email" value="abc@gmail.com" /> <input type="hidden" name="surl" value="http://localhost/success"/> <input type="hidden" name="furl" value="http://localhost/fail"/> <input type="hidden" name="phone" value="123423233" /> <input type="hidden" name="udf1" value="payu_paisa" /> <button class="" type="submit" formtarget="_blank" >Buy</button> </form>
哈希计算
hash=sha512(key|txnid|amount|productinfo|firstname|email|udf1
|SALT);
PHP集成套件中的testing密钥和盐不起作用。 所以使用我自己的testing密钥和盐,并计算正确的哈希它的工作正常。
以前我用电话,surl,furl和service_provider来计算哈希值。 但应该是这样的
var string = marchentKey +'|' +txnid+ '|' +amount+'|'+productinfo+'|'+firstname+'|'+email+'
||'+salt; var hash=sha512(string);
如果你发布的variables是没有提到他们的文件,即用户定义的variables,那么你应该包括这些variables作为udf1,udf2 ..
var string = marchentKey +'|' +txnid+ '|' +amount+'|'+productinfo+'|'+firstname+'|'+email+'|'+udf1+'|'+udf2+'
'+salt; var hash=sha512(string);