首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在PAYTM支付网关中的CALLBACK_URL无法工作

我在PAYTM支付网关中的CALLBACK_URL无法工作
EN

Stack Overflow用户
提问于 2020-09-01 06:14:16
回答 1查看 1.3K关注 0票数 2

我正在尝试将paytm支付网关集成到我的node.js应用程序中。发生的情况是,每当我试图通过我的pautm号码付款时,它会发送给我OTP,当我输入OTP和cick时,请确认它会消失,下一个选项是选择信用卡支付。再次,如果我试图用卡付款,付款是成功的,但它不会重定向我的任何地方和时间。

这是我的密码,请告诉我我做错了什么。

代码语言:javascript
复制
const checksumLib = require('./paytm/checksum/checksum');
const port = 8000;
var today = new Date();


app.post('/payment', function(req, res) {
    var payDetails = {
        number: req.body.number,
        amount: req.body.amount
    };
    let params = {};
    params['MID'] = 'XXXXXXXXXXXXXXXXXXXXX',
    params['WEBSITE'] = 'WEBSTAGING',
    params['CHANNEL_ID'] = 'WEB',
    params['INDUSTRY_TYPE_ID'] = 'Retail',
    params['ORDER_ID'] = 'ORD' + today.getDate()+today.getHours()+today.getMinutes()+today.getSeconds(),
    params['CUST_ID'] = 'CUST' + today.getDate()+today.getHours()+today.getMinutes()+today.getSeconds(),
    params['TXN_AMOUNT'] = payDetails.amount,
    params['CALLBACK_URL'] = 'http://localhost:' + port + '/callback',
    params['MOBILE_NO'] = payDetails.number

    checksumLib.genchecksum(params, 'XXXXXXXXXXXX', function(err, checksum) {
        let txn_url = "https://securegw-stage.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+"' >";
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write('<html><head><title>Merchant Checkout Page</title></head><body><center><h1>Please do not refresh this page...</h1></center><form method="post" action="'+txn_url+'" name="f1">'+form_fields+'</form><script type="text/javascript">document.f1.submit();</script></body></html>');
        res.end();
    });
});

app.post('/callback', (req, res) => {
    var body = '';
  
    req.on('data', function (data) {
       body += data;
    });
  
     req.on('end', function () {
       var html = "";
       var post_data = qs.parse(body);
  
       // received params in callback
       console.log('Callback Response: ', post_data, "\n");
  
  
       // verify the checksum
       var checksumhash = post_data.CHECKSUMHASH;
       // delete post_data.CHECKSUMHASH;
       var result = checksum_lib.verifychecksum(post_data, 'XXXXXXXXXX', checksumhash);
       console.log("Checksum Result => ", result, "\n");
  
  
       // Send Server-to-Server request to verify Order Status
       var params = {};
       params['MID'] = 'XXXXXXXXXXXXX';
       params['ORDER_ID'] = 'ORD' + today.getDate()+today.getHours()+today.getMinutes()+today.getSeconds();
  
       checksum_lib.genchecksum(params, 'PdMi4rHSpiUzccv!', function (err, checksum) {
  
        params["CHECKSUMHASH"] = checksum;
        var post_data = JSON.stringify(params);
  
         var options = {
           hostname: 'securegw-stage.paytm.in', // for staging
           // hostname: 'securegw.paytm.in', // for production
           port: 443,
           path: '/order/status',
           method: 'POST',
           headers: {
             'Content-Type': 'application/x-www-form-urlencoded',
             'Content-Length': post_data.length
           }
         };
  
  
         // Set up the request
         var response = "";
         var post_req = https.request(options, function(post_res) {
           post_res.on('data', function (chunk) {
             response += chunk;
           });
  
           post_res.on('end', function(){
             console.log('S2S Response: ', response, "\n");
  
             var _result = JSON.parse(response);
               if(_result.STATUS == 'TXN_SUCCESS') {
                   res.send('payment sucess')
               }else {
                   res.send('payment failed')
               }
             });
         });
  
         // post the data
         post_req.write(post_data);
         post_req.end();
        });
       });
  });
EN

回答 1

Stack Overflow用户

发布于 2022-06-20 04:42:56

只需添加https就可以解决这个问题。https://localhost/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63682332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档