【发布时间】:2021-12-07 17:44:49
【问题描述】:
我正在使用@paypal/react-paypal-js 显示 PayPal 按钮并创建订单。我对处理信用卡付款特别感兴趣。一旦我的 Django 后端从 PayPal 接收到付款捕获完成事件,它就需要存储有关拥有特定产品的特定用户的信息。因此,通知必须同时包含用户 ID(即电子邮件)和产品 ID。
这就是我尝试在前端传递这两条信息的方式:
createOrder={(data, actions) => {
return actions.order.create({
purchase_units: [
{
amount: {
value: course.price,
currency_code: course.currency,
},
custom_id: course.title,
},
],
payer: {
email_address: userEmail,
}
});
}}
这是我的onApprove:
onApprove={(data, actions) => onSuccess(data, actions)}
其中onSuccess的实现方式如下:
const onSuccess= (data, actions) => {
return actions.order.capture().then(
function (details) {
toast.success('Payment completed. Thank you, ' +
details.payer.name.given_name,
{duration: 6000})
}
);
}
用户电子邮件地址会自动填写到表单中。但是,服务器中的webhook_event 事件不包含此信息。也就是说,webhook_event 中的resource 内部没有payer 字段。
我也尝试将payee: {email_address: userEmail} 添加到purchase_units,但是在按下 PayPal 按钮后没有使用信用卡支付的选项。该选项已被创建 PayPal 帐户的选项所取代。
如何传递这两条信息以便在webhook_event 中获取它们? (我想避免将两部分连接成custom_id的丑陋解决方案)
【问题讨论】: