首页 > 解决方案 > paytm付款成功后,我无法回到我的角度应用程序

问题描述

我正在使用 Angular 8、nodejs 和 expressjs 集成 Paytm 支付网关。我正在服务器端(nodejs 和 expressjs)处理回调 url 事件,但在从 Paytm 支付网关获取成功回调 url 后,我无法返回到我的 Angular 应用程序。请帮我解决这个问题。

我的回调代码(在 expressjs 中):

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

标签: node.jsangularexpresspayment-gatewaypaytm

解决方案


似乎没有从回调响应中验证校验和。

请使用 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");
}

推荐阅读