Paypal API 调用产生 415 状态
Paypal API call produces 415 status
我设置了我的 Express 应用程序来侦听我的沙盒应用程序的 Paypal webhooks。然后我尝试通过 verify-webhook-signature API endpoint. I use the request module for that. But all I get is a 415 Unsupported Media Type 状态代码和一个空主体来验证数据的完整性。这是我的代码:
app.post('/webhooks', function (req, res) {
if (req.body.event_type == 'PAYMENT.CAPTURE.COMPLETED') {
headers = {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Bearer <AUTH_TOKEN>'
}
// Get the data for the API call of the webhook request
data = {
'transmission_id': req.headers['paypal-transmission-id'],
'transmission_time': req.headers['paypal-transmission-time'],
'cert_url': req.headers['paypal-cert-url'],
'auth_algo': req.headers['paypal-auth-algo'],
'transmission_sig': req.headers['paypal-transmission-sig'],
'webhook_id': '41G05244UL253035G',
'webhook_event' : req.body
}
request.post({
url: 'https://api.sandbox.paypal.com/v1/notifications/verify-webhook-signature',
headers: headers,
form: data,
}, (error, response, body) => {
if (error) {
console.error(error)
return
}
console.log(response.statusCode);
});
}
res.sendStatus(200);
});
这个数据有什么问题?
编辑:将 'form: data' 更改为 'body: JSON.stringify(data)' 完成了。
为什么要发回表格 post?不要post一个表格。发回原始数据。
我设置了我的 Express 应用程序来侦听我的沙盒应用程序的 Paypal webhooks。然后我尝试通过 verify-webhook-signature API endpoint. I use the request module for that. But all I get is a 415 Unsupported Media Type 状态代码和一个空主体来验证数据的完整性。这是我的代码:
app.post('/webhooks', function (req, res) {
if (req.body.event_type == 'PAYMENT.CAPTURE.COMPLETED') {
headers = {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Bearer <AUTH_TOKEN>'
}
// Get the data for the API call of the webhook request
data = {
'transmission_id': req.headers['paypal-transmission-id'],
'transmission_time': req.headers['paypal-transmission-time'],
'cert_url': req.headers['paypal-cert-url'],
'auth_algo': req.headers['paypal-auth-algo'],
'transmission_sig': req.headers['paypal-transmission-sig'],
'webhook_id': '41G05244UL253035G',
'webhook_event' : req.body
}
request.post({
url: 'https://api.sandbox.paypal.com/v1/notifications/verify-webhook-signature',
headers: headers,
form: data,
}, (error, response, body) => {
if (error) {
console.error(error)
return
}
console.log(response.statusCode);
});
}
res.sendStatus(200);
});
这个数据有什么问题?
编辑:将 'form: data' 更改为 'body: JSON.stringify(data)' 完成了。
为什么要发回表格 post?不要post一个表格。发回原始数据。