0
我使用node.js和express創建了一個paypal ipn監聽器。 這裏是我的監聽器代碼:Node.js和expressjs paypal ipn監聽器給出了錯誤500
exports.ipn = function(req, res, next) {
console.log('Paypal');
var ipn = require('paypal-ipn');
if(typeof req.body != "undefined") {
ipn.verify(req.body, function callback(err, msg) {
if (err) {
winston.error('IPN: ' + err);
} else {
if (req.body.payment_status == 'Completed' && msg == "VERIFIED") {
winston.info('IPN: ' + msg + " " + req.body.txn_id + " " + req.body.payer_email);
}
}
res.send(200);
res.end();
});
}
res.send(200);
res.end();
};
這是我expressjs設置和路線:
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.options('/', routes.options);
app.post('/', routes.up);
app.post('/ipn', routes.ipn);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
我使用這個模塊https://github.com/andzdroid/paypal-ipn驗證IPN消息,它正常工作與PayPal的IPN模擬器但是當我嘗試用它直播我得到這個我的節點控制檯:
undefined
POST /ipn 500 351ms
有沒有其他錯誤消息,只是這個錯誤500和不確定。有人能幫我找出這個未定義的變量是什麼,爲什麼這個錯誤500發生。即使我將聽衆中的所有內容都評論出來,它也會發生。
編輯:
我改變了貝寶IPN的網址,而我還沒有定義一些隨機的網址。我仍然得到未定義和錯誤500.如果我張貼捲曲我得到錯誤404像我應該。
編輯:
我發現,如果我做後期使用curl這樣的:
curl -d "test" -A "-" http://127.0.0.1/randomurl
然後,我會得到錯誤500 這給了我404:
curl -d "test=er" -A "-" http://127.0.0.1/randomurl