PayPal REST API-如何获取Webhook中返回的电子邮件地址?

时间:2018-08-04 22:59:49

标签: rest paypal

我正在使用checkout.js设置PayPal的REST API-

<div id="paypal-button"></div>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script>
paypal.Button.render({
  env: 'sandbox',
  client: {
    sandbox: 'XXXXXXXX'
  },
  payment: function (data, actions) {
    return actions.payment.create({
      transactions: [{
        amount: {
          total: '10.00',
          currency: 'USD'
        }
      }]
    });
  },
  onAuthorize: function (data, actions) {
    return actions.payment.execute()
      .then(function () {
        window.alert('Thank you for your purchase!');
      });
  }
}, '#paypal-button');
</script>

我测试该页面时效果很好。我设置了一个Webhook监听器并获取:

...
[resource_type] => sale
[event_type] => PAYMENT.SALE.COMPLETED
...

那里也有其他东西,但其中不包含有关买家的任何信息!通常我需要他们的电子邮件地址。

如果我使用贝宝(PayPal)的webhook simulator,我会,并告诉买方将其随附的CHECKOUT.ORDER.COMPLETED(而不是PAYMENT.SALE.COMPLETED)发送给我。一切:

...
[resource_type] => checkout-order
[event_type] => CHECKOUT.ORDER.COMPLETED
...
[payer] => (Everything I need)

这个问题是:有没有办法将我的交易从PAYMENT.SALE.COMPLETED更改为CHECKOUT.ORDER.COMPLETED,或者至少告诉我要在Webhook中包含电子邮件地址?

1 个答案:

答案 0 :(得分:1)

我发现的唯一答案是第二次调用,这次是GetExpressCheckoutDetails NVP API。完成工作,但这实际上不是必需的。