在我目前使用MEAN
堆栈的情况下,对于选择在线支付的客户,我创建了一个这样的超链接。
<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();
}
});
};
为了正确付款,控制权应该转移到支付网关站点,但在上面编码的过程中,我不确定如何将控制重定向到支付网关?
是否应该在浏览器上处理,而不是通过创建表单和表单操作应该是支付网关的URL?
如果我遵守这条规则?我的盐和商家ID不应该被客户看到吗?
请建议我适当的方式来追求这个。
答案 0 :(得分:1)
在将payu与我的网站集成时,我遇到了同样的问题。虽然我在后端使用php,但这个问题的解决方案是通用的。
您需要做的是处理两种形式:
表格A:让用户用金额填写此表格,将此表格的行动设定为表格B.
FORM B(隐藏):此表单将隐藏在您的服务器中,并将此表单的操作设置为http://test.payu.in/_payment并自动提交此表单。此表单将包含所有敏感信息,如商家密钥和盐。
一旦参数在FORM B中发布,它就会自动提交并在行动的帮助下重定向到payu网站以及参数。
您的商家密钥和盐也以这种方式保护在服务器上。