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);