我的电子商务平台在商品发货时向客户收费,而不是在订购时。这是正确的流程吗?请注意,客户可以使用 CardFields 或 PaypalButtons 付款。
首先我创建一个 POST 请求来
${process.env.PAYPAL_ENDPOINT}/v2/checkout/orders
创建订单。意图设置为“AUTHORIZE”。
然后我将订单 ID 发送回我的前端以将其传递给 onApprove。
然后,在我们发货之前,不会再拨打其他电话。这可能要等上几天。然后向 发出 POST 请求${process.env.PAYPAL_ENDPOINT}/v2/checkout/orders/${req.body.paypalOrderId}/capture
。
我以为我必须确认订单,但它说我缺少一个参数,但据我理解,payment_source 应该在前端单独附加(除非我被批准自行领取,但我没有)。
这种方法在立即捕获时确实有效,但我不确定它是否会在例如 28 天内有效,这是捕获付款的最大天数。
onApprove
应立即调用您的服务器,服务器应依次执行订单授权 API 调用https://developer.paypal.com/docs/api/orders/v2/#orders_authorize,并根据授权 API 响应向客户显示成功或失败。返回的 payment.authorization.id 可以在您准备发货时通过https://developer.paypal.com/docs/api/payments/v2/#authorizations_capture进行捕获,有效期为 28 天