使用新 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(...),傳遞 webhookIdwebhookUpdate

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
}