从NODE服务器向支付网关发送POST请求
在我目前对MEAN
堆栈的启发下,对于select在线支付的客户,我已经创build了一个这样的超链接。
<div> <a class="btn btn-pram-primary btn-block" href="node/public/orders">Online Payment</a> </div>
我用节点代码拦截这个url。
var sendRequestToPayU = function( req, res, next ) { console.log('In sendRequestToPayU' ); var post_data = querystring.stringify({ 'txnid': '1', 'amount': '100', 'productinfo' : 'ABCD', 'firstname' : 'UserName', 'email' : 'user@user.com', 'phone' : '9876543210' }); request({ url: 'https://test.payu.in/_payment', //URL to hit method: 'POST', headers: { 'Content-Type': 'MyContentType', 'Content-Length': post_data.length }, body: post_data //Set the body as a string }, function(error, response, body){ if(error) { console.log(error); } else { console.log(response.statusCode, body); res.html(body).send(); } }); };
为了正确的付款,控制权应该转移到支付网关站点,但在上面编码的过程中,我不确定如何将控制权redirect到支付网关?
是否应该在浏览器上处理,而不是通过创build表单来执行,表单操作应该是支付网关的URL?
如果我遵循这个规则? 客户不应该看到我的salt和merchant id吗?
请build议我采取适当的方式来追求这一点。
在将payu与我的网站集成时,我面临同样的问题。 虽然我使用PHP作为我的后端,但是这个问题的解决scheme是通用的。
你需要做的是处理两种forms:
FORM A:使用户填写该表格的数量,将该表格的行为设置为FORM B.
表格B(隐藏):此表格将隐藏在您的服务器中,并将此表格的行为设置为http://test.payu.in/_payment并自动提交此表格。 这个表格将包含所有的敏感信息,如商家密钥和盐。
只要参数在FORM B中发布,它就会自动提交,并通过操作将其redirect到payu网站。
您的商家密钥和盐也像服务器上一样以这种方式得到保护。