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