使用新 URL 更新 Webhook(节点示例)
此示例将向你展示如何更新现有的 webhook 转发 URL(应将通知发布到的位置)。要运行此功能,你应该在首次创建 webhook 时通过 PayPal 提供 ID。
首先,添加 PayPal SDK 并配置环境(下面的沙箱)。
var paypal = require('paypal-rest-sdk');
var clientId = 'YOUR APPLICATION CLIENT ID';
var secret = 'YOUR APPLICATION SECRET';
paypal.configure({
'mode': 'sandbox', //sandbox or live
'client_id': clientId,
'client_secret': secret
});
接下来,设置 JSON 结构和 webhook 详细信息。首先将你的 webhook 的 ID 分配给 webhookId
。接下来,在 webhookUpdate
中,指定 replace 的操作,将 path
设置为/url
以指定该资源的更新,并提供新的 URL 以用 value
替换它。
var webhookId = "YOUR WEBHOOK ID";
var webhookUpdate = [{
"op": "replace",
"path": "/url",
"value": "https://64fb54a2.ngrok.io"
}];
最后,调用 notification.webhook.replace(...)
,传递 webhookId
和 webhookUpdate
。
paypal.notification.webhook.replace(webhookId,webhookUpdate,function(err, res){if(err)
{console.log(err); throw err;} else {console.log(JSON.stringify(res)
);} });
如果全部成功,则应从 PayPal 返回类似于以下内容的对象,并且在此示例的情况下,在终端中显示具有新更新信息的对象。
{
"id":"4U496984902512511",
"url":"https://64fb54a2.ngrok.io",
"event_types":[{
"name":"PAYMENT.SALE.DENIED",
"description":"A sale payment was denied"
}],
"links":[{
"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks/4U496984902512511",
"rel":"self",
"method":"GET"
},{
"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks/4U496984902512511",
"rel":"update",
"method":"PATCH"
},{
"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks/4U496984902512511",
"rel":"delete",
"method":"DELETE"
}],
"httpStatusCode":200
}