自定义重定向行为
显示包含客户订单信息的确认页面。
如果您的 Checkout 集成使用的是嵌入式表单,那么您可以自定义 Stripe 如何在客户完成付款后对客户进行重定向以及是否进行重定向。您可以让 Stripe 始终重定向客户,仅重定向某些支付方式,或完全禁用重定向。
设置重定向,在 return_
参数中指定返回页面。
或者,您可以:
- 仅当支付方式要求时才重定向客户(例如,基于借记方式的银行授权页面)。
- 不使用返回页面并禁用基于重定向的支付方式。
将客户重定向到返回页面
创建 Checkout Session 时,在 return_
参数 中指定返回页面的 URL。在 URL 中包含 {CHECKOUT_
模板变量。当 Checkout 重定向客户时,它会用实际的 Checkout Session ID 替换该变量。呈现您的返回页面时,用 URL 中的 Checkout Session ID 检索 Checkout Session 的状态。
app.get('/session_status', async (req, res) => { const session = await stripe.checkout.sessions.retrieve(req.query.session_id); const customer = await stripe.customers.retrieve(session.customer); res.send({ status: session.status, payment_status: session.payment_status, customer_email: customer.email }); });
根据会话状态处理结果,如下所示:
complete
:支付成功。使用来自 Checkout Session 的信息来呈现成功页面。open
:支付失败或已取消。重新加载 Checkout,以便客户重试。
const session = await fetch(`/session_status?session_id=${session_id}`) if (session.status == 'open') { // Remount embedded Checkout else if (session.status == 'complete') { // Show success page // Optionally use session.payment_status or session.customer_email // to customize the success page }
基于重定向的支付方式
支付过程中,某些支付方式会将客户重定向到一个中间页面,例如银行授权页面。完成该页面上的操作后,Stripe 会将他们重定向到您的返回页面。
仅对基于重定向的支付方式使用重定向
在完成不需要重定向的付款后,如果您不想对客户进行重定,可将 redirect_on_completion 设置为 if_
。这样的话,只会对使用基于重定向的支付方式的客户进行重定向。
对于银行卡付款,Checkout 会呈现默认的成功状态,而非重定向。要使用您自己的成功状态,传递一个 onComplete 回调来使用您自己的成功状态,该回调会销毁 Checkout 实例并呈现您的自定义成功状态。
当 Checkout Session 成功完成或发送 checkout.session.completed Webhook 事件时,调用 onComplete
。
禁用基于重定向的支付方式
如果您不想创建返回页面,请创建您的 Checkout Session,将 redirect_on_completion 设置为 never
。
这将禁用基于重定向的支付方式:
- 如果您使用动态支付方式,您仍然可以从管理平台管理支付方式,但需要重定向的支付方式不适用。
- 如果您使用 payment_method_types 手动指定支付方式,请不要包含任何基于重定向的支付方式。
设置 redirect_
会去除 return_
要求。对于这些会话,Checkout 会呈现默认的成功状态,而非重定向。您可以通过传递一个 onComplete 回调来使用您自己的成功状态,该回调会销毁 Checkout 实例并呈现您的自定义成功状态。
当 Checkout Session 成功完成或发送 checkout.session.completed Webhook 事件时,调用 onComplete
。