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