node.js - 使用节点js在Web中支付成功后重定向回应用程序问题
问题描述
在 nodejs 中实现了 paytm 支付逻辑。成功付款后,它不会重定向到成功消息,只是在 prod 环境中显示“重定向回页面”。下面是我的代码。还附上截图。如果我错过任何事情,请帮助我。在此处输入图像描述
app.post('/payment', urlencodedParser, (req,res)=>{
let reqbody = req.body;
let orderId = 'order_'+ Math.random().toString(36).substring(7);
let params = {}
params['MID'] = 'My Merchant Id',
params['WEBSITE'] = 'DEFAULT',
params['CHANNEL_ID'] = 'WEB',
params['INDUSTRY_TYPE_ID'] = 'Retail',
params['ORDER_ID'] = orderId,
params['CUST_ID'] = 'CUST' + Math.random().toString(36).substring(7),
params['TXN_AMOUNT'] = '1',//+reqbody.money+'',
params['CALLBACK_URL'] = 'https://securegw.paytm.in/theia/paytmCallback?ORDER_ID='+orderId+'',
params['EMAIL'] = 'myemail@gmail.com',
params['MOBILE_NO'] = '9999999999',
checksum_lib.genchecksum(params, '9KBKBVjiB3ml5TSP', function(err, checksum){
let txn_url = 'https://securegw.paytm.in/order/process';
let form_fields =''
for(x in params){
form_fields +="<input type='hidden' name = '"+x+"' value = '"+params[x]+"'/>"
}
form_fields +="<input type='hidden' name = 'CHECKSUMHASH' value = '"+checksum+"' />"
var html = '<html><body><center><h1>Please wait! Do not refresh the page </h1></center><form method="post" action="'+txn_url+'" name="f1">'+form_fields+'<script type="text/javascript">document.f1.submit()</script></body></html>'
res.writeHead(200, {'Content-Type':'text/html'})
res.write(html)
res.end()
})
})
解决方案
请使用您自己的回调 URL 而不是 https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=。以上回调 URL 仅适用于应用程序。所以你需要在参数params['CALLBACK_URL']中替换你自己的回调URL。
推荐阅读
- python - 使用正则表达式 Python 进行模式匹配
- c# - 如何在 DragOver 事件上突出显示 ListView 的一项?
- powershell - 使用 Invoke-Command 时“您不能在空值表达式上调用方法”
- shell - 如何使用 grep 输出 sed 并更改单词以更改原始文本文件的一部分
- r - ggplot:如何使 aes 中的颜色将参数作为颜色的十六进制代码而不是将其用作一个因素?
- javascript - 从网页中恢复显示的 JSON 数据?
- python - Audit Script function.sample 查询?
- python - AttributeError:“列表”对象没有属性“拆分”。Python,通过换行将列表拆分为 .csv 单元格
- html - 在 Bootstrap 4 中,带有浮动的 3 列布局不会更改为带有媒体查询的一列
- asp.net-mvc - 如何将对象值转换为double?