Customise redirect behaviour
Display a confirmation page with your customer's order information.
If you have a Checkout integration that uses a hosted page, Stripe redirects your customer to a success page that you create and host on your site. You can use the details from a Checkout Session to display an order confirmation page for your customer (for example, their name or payment amount) after the payment.
Redirect customers to a success page
To use the details from a Checkout Session:
- Modify the success_url to pass the Checkout Session ID to the client side.
- Look up the Checkout Session using the ID on your success page.
- Use the Checkout Session to customize what’s displayed on your success page.
Webhooks are required for fulfilment
You can’t rely on triggering fulfilment only from your checkout landing page, because your customers aren’t guaranteed to visit that page. For example, someone can pay successfully and then lose their connection to the internet before your landing page loads.
Set up a webhook event handler so Stripe can send payment events directly to your server, bypassing the client entirely. Webhooks provide the most reliable way to confirm when you get paid. If webhook event delivery fails, Stripe retries multiple times.
Modify the success URL Server-side
Add the {the related setting} template variable to the success_url when you create the Checkout Session. This is a literal string and you must add it exactly as you see it here. Don’t substitute it with a Checkout Session ID – this happens automatically after your customer pays and is redirected to the success page.
Select a language
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Create the success page Server-side
Look up the Checkout Session using the ID and create a success page to display the order information. This example prints out the customer’s name:
Select a language
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# This example sets up an endpoint using the Sinatra framework.
# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
client = Stripe::StripeClient.new('sk_test_Ou1w6LVt3zmVipDVJsvMeQsc')
require 'sinatra'
get '/order/success' do
session = client.v1.checkout.sessions.retrieve(params[:session_id])
customer_account = client.v2.core.accounts.retrieve(session.customer_account)
"<html><body><h1>Thanks for your order, #{customer_account.display_name}!</h1></body></html>"
end
Test the integration
To confirm that your redirect is working as expected:
- Click the checkout button.
- Fill in the customer name and other payment details.
- Click Pay .
If it works, you’re redirected to the success page with your custom message. For example, if you used the message in the code samples, the success page displays this message: Thanks for your order, Jenny Rosen!