Personalizar comportamento de redirecionamento
Exiba uma página de confirmação com os dados do pedido do seu cliente.
Se você tiver uma integração com o Checkout que usa um formulário integrado, pode personalizar como e se a Stripe redireciona seus clientes após o pagamento. Você pode fazer com que a Stripe redirecione sempre os clientes, redirecione apenas algumas formas de pagamento ou desative completamente os redirecionamentos.
Para configurar redirecionamentos, especifique a página de retorno no parâmetro return_
.
Como alternativa, você pode:
- Redirecione os clientes somente se a forma de pagamento exigir (por exemplo, uma página de autorização bancária para uma forma de débito).
- Não usar uma página de retorno e desativar formas de pagamento baseadas em redirecionamento.
Redirecionar clientes para uma página de retorno
Ao criar a sessão do Checkout, você especifica o URL da página de retorno no parâmetro return_
. Inclua a variável de modelo {CHECKOUT_
no URL. Quando o Checkout redireciona um cliente, ele substitui a variável pelo ID de sessão do Checkout real. Ao exibir a página de retorno, recupere o status da sessão do Checkout usando o ID da sessão do Checkout no URL.
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 }); });
Processe o resultado de acordo com o status da sessão da seguinte forma:
complete
: o pagamento foi bem-sucedido. Use as informações da sessão do Checkout para renderizar uma página de sucesso.open
: o pagamento falhou ou foi cancelado. Remonte o Checkout para que seu cliente possa tentar novamente.
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 }
Formas de pagamento baseadas em redirecionamento
Durante o pagamento, algumas formas de pagamento redirecionam o cliente para uma página intermediária, como uma página de autorização bancária. Quando concluem essa página, a Stripe os redireciona para sua página de retorno.
Redirecionar somente para formas de pagamento baseadas em redirecionamento
Se você não quiser redirecionar clientes após pagamentos que não exigem redirecionamento, defina redirect_on_completion como if_
. Isso redireciona apenas clientes que fazem checkout com formas de pagamento baseadas em redirecionamento.
Para pagamentos com cartão, o Checkout renderiza um estado de sucesso padrão em vez de redirecionar. Para usar seu próprio estado de sucesso, passe um callback onComplete, que destrói a instância do Checkout e renderiza seu estado de sucesso personalizado.
onComplete
é chamado quando a sessão do Checkout é concluída com êxito ou quando o evento de webhook checkout.session.completed é enviado.
Desativar formas de pagamento baseadas em redirecionamento
Se não quiser criar uma página de retorno, crie sua sessão do Checkout com redirect_on_completion definido como never
.
Isso desativa as formas de pagamento baseadas em redirecionamento:
- Se você usa formas de pagamento dinâmicas, ainda pode gerenciar formas de pagamento do Dashboard, mas formas de pagamento que exigem redirecionamentos não são qualificadas.
- Se você especificar formas de pagamento manualmente com payment_method_types, não poderá incluir nenhuma forma de pagamento baseada em redirecionamentos.
Definir redirect_
remove o requisito return_
. Para essas sessões, o Checkout renderiza um estado de sucesso padrão em vez de redirecionar. Você pode usar seu próprio estado de sucesso passando um callback onComplete, que destrói a instância do Checkout e renderiza seu estado de sucesso personalizado.
onComplete
é chamado quando a sessão do Checkout é concluída com êxito ou quando o evento de webhook checkout.session.completed é enviado.