PayPal Aggiornamento di un webhook con un nuovo URL (esempio di nodo)


Esempio

Questo esempio ti mostrerà come aggiornare un URL di inoltro webhook esistente (dove le notifiche devono essere POSTATE a). Per eseguirlo, dovresti avere l'ID restituito da PayPal quando hai creato per la prima volta i tuoi webhook.

Innanzitutto, aggiungi l'SDK PayPal e configura l'ambiente (sandbox in basso).

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
});

Quindi, imposta la struttura JSON e i dettagli del webhook. Assegna prima l'ID del tuo webhook a webhookId . Successivamente, nel webhookUpdate , specificare un'operazione di sostituzione, impostare il path su /url per specificare un aggiornamento di tale risorsa e fornire il nuovo URL per sostituirlo con il value inferiore.

var webhookId = "YOUR WEBHOOK ID";
var webhookUpdate = [{
    "op": "replace",
    "path": "/url",
    "value": "https://64fb54a2.ngrok.io"
}];

Infine, chiama notification.webhook.replace(...) , passando in webhookId e webhookUpdate .

paypal.notification.webhook.replace (webhookId, webhookUpdate, function (err, res) {if (err) {console.log (err); gira err;} else {console.log (JSON.stringify (res));} });

Se tutto riesce, un oggetto simile al seguente dovrebbe essere restituito da PayPal e, nel caso di questo campione, visualizzato nel terminale con le informazioni appena aggiornate.

{  
    "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
}