我正在使用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中包含电子邮件地址?
答案 0 :(得分:1)
我发现的唯一答案是第二次调用,这次是GetExpressCheckoutDetails NVP API。完成工作,但这实际上不是必需的。