更新:代码现在可以正常工作,我认为在向代码中添加“ res.send('on')”之后,有大量未验证的事务不得不通过系统重新工作。
编辑:添加res.send('on')
修复了502网关错误,但重新发送仍在继续。
我已经成功配置了Webhooks,并且正在我的侦听器中接收它们。关于如何验证的文档不是很清楚,但是我正在运行节点SDK文档中提供的get_and_ verify.js
的代码。 PayPal发送的每个Webhook均通过此代码运行,该代码始终返回true
。
我的问题是,PayPal似乎无休止地反复发送相同的Webhook。我在配置中没有做过什么,还是这只是这些工作的方式?
收听者代码:
app.post('/paymentauthed', (req,res) => {
res.status(200);
console.log(req.body);
paypal.configure({
mode: "sandbox", //sandbox or live
client_id:
"...",
client_secret:
"..."
});
const eventBody = `{"id": "${req.body.id}"}`
paypal.notification.webhookEvent.getAndVerify(eventBody, function (error, response) {
if (error) {
console.log(error);
throw error;
} else {
console.log(response);
}
});
});
app.listen(3000, () => console.log('Server Started'))
此响应也可能是相关的,它说存在502错误的网关,不确定为什么...
"transmissions": [
{
"webhook_url": "https://cloudhookstester.net/paymentauthed",
"response_headers": {
"SERVER_INFO": "",
"Strict-Transport-Security": "“max-age=15768000”",
"HTTP/1.1 502 Bad Gateway": "",
"Server": "nginx/1.14.2",
"Connection": "keep-alive",
"Content-Length": "173",
"Date": "Tue, 15 Jan 2019 03:38:43 GMT",
"Content-Type": "text/html"
},
"transmission_id": "74323070-1874-11e9-8941-d953a11868e8",
"status": "PENDING",
"timestamp": "2019-01-15T03:20:05Z"
}
],
感谢您的帮助。