使用新 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
}