我尝试使用pagseguro library将pagseguro(付款处理器)与我的应用集成。但是我收到了这个错误:
res.redirect不是函数
代码的这一部分:
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 : 'xxxxx@gmail.com',
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: 'filipe.ferminiano@gmail.com',
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 :(得分:0)
res.redirect
。要在没有Express的情况下执行此操作,您只需发回301:
res.writeHead(301,
{ Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code; }
);
res.end();
答案 1 :(得分: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();
});
});