问题描述
我正在使用angular 8,nodejs和expressjs集成Paytm支付网关。我正在服务器端(nodejs和expressjs)上处理回调URL事件,但是从Paytm付款网关获取成功的回调URL后,我无法返回到我的angular应用程序。请帮助我解决此问题。
app.post('/callback',(req,res) => {
responsePayment(req.body).then(
success => {
res.render("response.ejs",{resultData: "true",responseData: success});
console.log(res);
},error => {
res.send(error);
}
);
})
}
const responsePayment = function(paymentObject) {
return new Promise((resolve,reject) => {
if (
checksum_lib.verifychecksum(
paymentObject,"my Merchant Key",paymentObject.CHECKSUMHASH
)
) {
resolve(paymentObject);
} else {
return reject('Error while verifying checksum');
}
});
解决方法
似乎没有从回调响应中验证校验和。
请使用paytm开发人员页面上为nodejs提供的最新校验和库。此处提供了相同的github链接供您参考:https://github.com/paytm/Paytm_Node_Checksum 请参考此处给出的验证校验和的方法:
/* import checksum generation utility */
var PaytmChecksum = require("./PaytmChecksum");
paytmChecksum = request.body.CHECKSUMHASH;
delete request.body.CHECKSUMHASH;
var isVerifySignature = PaytmChecksum.verifySignature(request.body,config.PAYTM_MERCHANT_KEY,paytmChecksum);
if (isVerifySignature) {
console.log("Checksum Matched");
} else {
console.log("Checksum Mismatched");
}