2016-12-31 63 views
0

我正在嘗試使用pagseguro library將pagseguro(支付處理器)與我的應用程序集成。但我發現了這個錯誤:res.redirect不是函數

res.redirect is not a function

在這部分代碼:

parseString(res, function (err, result) { 
      code = result.checkout.code; 
      var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code; 
      res.redirect(redirect_url); 

     }); 

這是完整的代碼:

var pagseguro = require('pagseguro'); 
    //sandbox 
    var pag = new pagseguro({ 
     email : '[email protected]', 
     token: 'XXX', 
     mode : 'sandbox' 
    }); 

    //Configurando a moeda e a referência do pedido 
    pag.currency('BRL'); 
    pag.reference('12345'); 

    pag.addItem({ 
     id: 1, 
     description: 'Plano Analytics Bot', 
     amount: "10.00", 
     quantity: 1 
    }); 

    pag.buyer({ 
     name: 'José Comprador', 
     email: '[email protected]', 
     phoneAreaCode: '51', 
     phoneNumber: '12345678' 
    }); 

    pag.setRedirectURL("http://www.lojamodelo.com.br/retorno"); 
    pag.setNotificationURL("http://www.lojamodelo.com.br/notificacao"); 

    pag.send(function(err, res) { 
     if (err) { 
      console.log(err); 
     } 
     var parseString = require('xml2js').parseString; 
     parseString(res, function (err, result) { 
      code = result.checkout.code; 
      var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code; 
      res.redirect(redirect_url); 

     }); 
    }); 

回答

0

我解決了這個改變函數的變量名:

pag.send(function(err, response) { 
     if (err) { 
      console.log(err); 
     } 
     console.log(response); 
     var parseString = require('xml2js').parseString; 
     parseString(response, function (err, result) { 
      console.dir(result); 

      code = result.checkout.code; 
      console.log(code); 

      var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code; 
      console.log(redirect_url); 
      res.writeHead(301, 
       { Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code } 
      ); 
      res.end(); 

     }); 
    }); 
0

res.redirect自帶快遞。要做到這一點,沒有任何明示,你只是發回301:

res.writeHead(301, 
    { Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code; } 
); 
res.end(); 
+0

我越來越res.writeHead是不是一個函數 –