我已经整合了PayPal按钮在我的网站使用react.js,我想得到一封电子邮件,每次用户支付使用该PayPal按钮在我的网站上,我如何实现呢?
P.S:我在用PayPal沙箱
我想做以下几点:
useEffect(() => {
window.paypal.Buttons({
createOrder: (data, actions, err) => {
return actions.order.create({
intent: "CAPTURE",
purchase_units: [
{
amount: { currency_code: "CAD", value: 50 },
},],
});
}, onApprove: async (data, actions) => {
setPaid(true);
setCompleted(true);
// *THEN SEND ME AN EMAIL THAT A PAYMENT HAS BEEN DONE*
},
onError: (err) => {
setCompleted(true);
console.log(err);
},
})
.render(paypal.current)
}, []);发布于 2022-04-02 14:07:59
实际的电子邮件应该从后端发送。
遵循PayPal校验集成指南,在后端创建2条路线,一条用于“创建订单”,另一条用于“捕获命令”。这两条路线都应该只返回JSON数据(不返回HTML或文本)。在第二条路由中,当捕获API成功时,您可以将其结果的支付细节存储在数据库中(特别是purchase_units[0].payments.captures[0].id,即PayPal事务ID),并在将返回的JSON转发给前端调用方之前执行任何必要的业务逻辑(例如发送电子邮件或保留产品)(在您的情况下将作出反应)。
对于前端审批流程,而不是在您的问题中使用您自己的useEffect实现,请考虑正式的@paypal/react paypal-js。给它调用后端的createOrder和onApprove函数参数(可能使用fetch)。有关此类函数的示例,请参阅集成指南中的完整堆栈示例或https://developer.paypal.com/demo/checkout/#/pattern/server中的完整堆栈示例(目前,后者是最好的,因为它展示了如何处理捕获响应的3种不同情况)。
https://stackoverflow.com/questions/71717841
复制相似问题