# Créer une page de paiement hébergée par Stripe # Page hébergée par Stripe Explorez un échantillon de code complet et fonctionnel d’une intégration avec [Stripe Checkout](https://docs.stripe.com/payments/checkout.md), où les clients cliquent sur un bouton sur votre site et sont redirigés vers une page de paiement hébergée par Stripe. L’exemple inclut du code côté client et côté serveur, et la page de paiement est préconfigurée. ### Installer la bibliothèque Node de Stripe Installez le package et importez-le dans votre code. Si vous partez de zéro et qu’il vous faut un fichier package.json, vous pouvez également télécharger les fichiers du projet à l’aide du lien de téléchargement dans l’éditeur de code. #### npm Installez la bibliothèque : ```bash npm install --save stripe ``` #### GitHub Vous pouvez sinon télécharger le code source de la bibliothèque Node de Stripe directement [depuis GitHub](https://github.com/stripe/stripe-node). ### Installer la bibliothèque Ruby de Stripe Installez le gem Ruby de Stripe et exigez-le dans votre code. Si vous partez de zéro et avez besoin d’un Gemfile, téléchargez les fichiers du projet à l’aide du lien dans l’éditeur de code. #### Terminal Installez le gem : ```bash gem install stripe ``` #### Bundler Ajoutez cette ligne à votre Gemfile : ```bash gem 'stripe' ``` #### GitHub Vous pouvez sinon télécharger le code source du gem Ruby de Stripe directement [depuis GitHub](https://github.com/stripe/stripe-ruby). ### Installer la bibliothèque Java Ajoutez la dépendance à votre build et importez la bibliothèque. Ou bien, si vous partez de zéro et avez besoin d’un exemple de fichier pom.xml (pour Maven), téléchargez les fichiers du projet à l’aide du lien de téléchargement dans l’éditeur de code. #### Maven Ajoutez la dépendance suivante à votre POM et remplacez {VERSION} par le numéro de version que vous souhaitez utiliser. ```bash \ncom.stripe\nstripe-java\n{VERSION}\n ``` #### Gradle Ajoutez la dépendance à votre fichier build.gradle et remplacez {VERSION} par le numéro de version que vous souhaitez utiliser. ```bash implementation "com.stripe:stripe-java:{VERSION}" ``` #### GitHub Téléchargez le fichier JAR directement [depuis GitHub](https://github.com/stripe/stripe-java/releases/latest). ### Installer le package Python de Stripe Installez le package Stripe et importez-le dans votre code. Si vous partez de zéro et qu’il vous faut un fichier requirements.txt, téléchargez les fichiers du projet à l’aide du lien de téléchargement dans l’éditeur de code. #### pip Installez le package via pip : ```bash pip3 install stripe ``` #### GitHub Téléchargez le code source de la bibliothèque stripe-python directement [depuis GitHub](https://github.com/stripe/stripe-python). ### Installer la bibliothèque PHP Installez la bibliothèque avec composer et initialisez-la avec votre clé API secrète. Si vous partez de zéro et que vous avez besoin d’un fichier composer.json, vous pouvez également télécharger les fichiers à l’aide du lien de téléchargement dans l’éditeur de code. #### Composer Installez la bibliothèque : ```bash composer require stripe/stripe-php ``` #### GitHub Vous pouvez sinon télécharger le code source de la bibliothèque php de Stripe directement [depuis GitHub](https://github.com/stripe/stripe-php). ### Configurer votre serveur Ajoutez la dépendance à votre build et importez la bibliothèque. Si vous partez de zéro et avez besoin d’un fichier go.mod, téléchargez les fichiers du projet à l’aide du lien de téléchargement dans l’éditeur de code. #### Go Veillez à initialiser avec des modules Go : ```bash go get -u github.com/stripe/stripe-go/v85 ``` #### GitHub Vous pouvez sinon télécharger le code source de la bibliothèque Go de Stripe directement [depuis GitHub](https://github.com/stripe/stripe-go). ### Installer la bibliothèque Stripe.net Installez le package avec .NET ou NuGet. Si vous partez de zéro, vous pouvez également télécharger les fichiers qui contiennent un fichier .csproj configuré. #### .NET Installez la bibliothèque : ```bash dotnet add package Stripe.net ``` #### NuGet Installez la bibliothèque : ```bash Install-Package Stripe.net ``` #### GitHub Vous pouvez sinon télécharger le code source de la bibliothèque .NET de Stripe directement [depuis GitHub](https://github.com/stripe/stripe-dotnet). ### Installer les bibliothèques Stripe Installez les packages et importez-les dans votre code. Si vous partez de zéro et qu’il vous faut un fichier `package.json`, vous pouvez également télécharger les fichiers du projet à l’aide du lien de téléchargement dans l’éditeur de code. Installez les bibliothèques : ```bash npm install --save stripe @stripe/stripe-js next ``` ### Créer une session Checkout Ajoutez sur votre serveur un endpoint qui crée une [session Checkout](https://docs.stripe.com/api/checkout/sessions.md). Une session Checkout contrôle les informations que votre client peut consulter sur la page de paiement, par exemple les postes de facture, le montant et la devise de la commande, ainsi que les moyens de paiement acceptés. Par défaut, nous activons les cartes bancaires et d’autres moyens de paiement que vous utilisez fréquemment, mais vous pouvez activer et désactiver des moyens de paiement directement depuis le [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). ### Créer une session Checkout Ajoutez un [gestionnaire d’itinéraire](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) dans votre application pour créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions.md). Une session Checkout contrôle ce que votre client voit sur la page de paiement, comme les postes de la facture, le montant et la devise de la commande, ainsi que les moyens de paiement acceptés. Par défaut, nous activons les cartes bancaires et autres moyens de paiement courants pour vous. Vous pouvez activer et désactiver des moyens de paiement directement depuis le [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). ### Définir un produit à vendre Conservez toujours les informations sensibles sur votre inventaire de produits, comme le prix et la disponibilité, sur votre serveur pour éviter toute manipulation de la part du client. Définissez les informations sur les produits lorsque vous créez la session Checkout avec des [ID de prix prédéfinis](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#create-product-prices-upfront) ou à la volée avec [price_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-price_data). ### Choisir un mode Pour traiter différents types de transactions, réajustez le paramètre `mode`. Pour les paiements ponctuels, utilisez `payment`. Pour initier des paiements récurrents avec des [abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=checkout&ui=stripe-hosted), basculez le `mode` sur `subscription`. Et pour [configurer des paiements futurs](https://docs.stripe.com/payments/save-and-reuse.md?platform=web&ui=stripe-hosted), définissez le `mode` sur `setup`. ### URL de confirmation de fourniture Indiquez une URL pour la page de réussite. Assurez-vous qu’elle soit accessible au public afin que Stripe puisse y rediriger les clients. ### Rediriger vers Checkout Après avoir créé la session, redirigez votre client vers l’URL de la page Checkout renvoyée dans la réponse. ### Ajouter une page de confirmation de paiement Créez une page de confirmation de paiement correspondant à l’URL fournie en tant que `success_url` de la session Checkout pour présenter au client le message de confirmation ou les détails de la commande. Stripe redirige le client vers cette page une fois qu’il a terminé la procédure de paiement. ### Ajouter une page d’aperçu de commande Enfin, ajoutez une page offrant un aperçu de la commande du client, et offrez-lui la possibilité de vérifier ou de modifier sa commande. Une fois qu’un client est redirigé vers la page Checkout, la commande est définitive et ne pourra plus être modifiée sans créer une nouvelle session Checkout. ### Ajouter une page d’aperçu de commande Ajoutez une page pour afficher un aperçu de la commande du client. Offrez-lui la possibilité de vérifier ou de modifier sa commande. Une fois que le client est redirigé vers la page Checkout, la commande est définitive et ne peut plus être modifiée sans créer une nouvelle session Checkout. ### Ajouter un bouton de paiement Ajoutez un bouton de paiement à votre page d’aperçu de commande. Lorsque votre client clique sur ce bouton, il est redirigé vers la page de paiement hébergée par Stripe. ### Ajouter un bouton de paiement Ajoutez un bouton à la page d’aperçu de votre commande. Lorsque votre client clique sur ce bouton, il est redirigé vers le formulaire de paiement hébergé par Stripe. ### Ajouter une page d’aperçu de commande Ajoutez un fichier sous `pages/` pour créer une page affichant un aperçu de la commande du client. Offrez-lui la possibilité de vérifier ou de modifier sa commande. Une fois qu’un client est redirigé vers la page Checkout, la commande est définitive et ne peut être modifiée sans créer une nouvelle session Checkout. ### Récupérer une session Checkout Ajoutez un bouton à la page d’aperçu de votre commande. Lorsque votre client clique dessus, envoyez une requête au gestionnaire d’itinéraires pour le rediriger vers une nouvelle session Checkout. ### Gérer la redirection au retour de Checkout Affichez un message destiné au client lorsqu’il est redirigé vers votre page. Attendez que le paiement soit effectué avant de traiter la commande (par exemple, expédition du colis ou envoi du reçu par e-mail). En savoir plus sur le [traitement des commandes avec Checkout](https://docs.stripe.com/checkout/fulfillment.md). ### Définir vos variables d’environnement Ajoutez vos clés publiables et secrètes à un fichier `.env`. Next.js les charge automatiquement dans votre application en tant que [variables d’environnement](https://nextjs.org/docs/basic-features/environment-variables). Si vous souhaitez écouter des webhooks, incluez également une clé secrète de webhook que vous pouvez créer dans le [Dashboard](https://dashboard.stripe.com/webhooks) ou à l’aide de la [CLI commande Stripe](https://docs.stripe.com/stripe-cli.md). ### Avant d’exécuter l’application Ajoutez `“proxy”: “”` à votre fichier `package.json` lors du développement en local. ### Exécuter l’application Démarrer votre serveur et accéder à ### Exécuter l’application Démarrer votre serveur et accéder à ### Exécuter l’application Démarrez votre application avec `npm run dev` et accédez à ### Faire un essai Cliquez sur le bouton de paiement pour être redirigé(e) vers la page Stripe Checkout. Utilisez l’une des cartes bancaires de test pour simuler un paiement. | Scenario | Card Number | | ----------------------------------- | ---------------- | | Payment succeeds | 4242424242424242 | | Payment requires 3DS authentication | 4000002500003155 | | Payment is declined | 4000000000009995 | ## Félicitations ! Vous disposez d’une intégration Checkout de base qui fonctionne. Découvrez maintenant comment personnaliser l’apparence de votre page de paiement et automatiser la collecte des taxes. ### Personnaliser la page de paiement Personnalisez l’apparence de la page de paiement hébergée en : - Ajoutant votre logo et votre thème de couleur dans vos [paramètres de marque](https://dashboard.stripe.com/settings/branding). - Utilisant l’[API Checkout Sessions](https://docs.stripe.com/api/checkout/sessions/create.md) pour activer des fonctionnalités supplémentaires, comme la collecte d’adresses ou le pré-remplissage des données clients. ### Renseigner automatiquement les données client Utilisez le paramètre [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email) pour renseigner automatiquement l’adresse e-mail du client dans le champ de saisie correspondant. Vous pouvez également transmettre un ID de [client](https://docs.stripe.com/api/customers.md) dans le champ `customer`, ce qui permettra de remplir automatiquement le champ réservé à cet effet avec l’adresse e-mail enregistrée pour ce client. ### Choisir un bouton d’envoi Configurez la copie affichée sur le bouton de validation de Checkout en configurant le paramètre [submit_type](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-submit_type) sur l’un des quatre types de boutons de validation disponibles. ### Collecter les informations de facturation et de livraison Utilisez les paramètres [billing_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-billing_address_collection) et [shipping_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_address_collection) pour collecter l’adresse de votre client. [shipping_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_address_collection) exige une liste des pays autorisés (`allowed_countries`). Sur la page, Checkout affiche la liste des pays autorisés dans un menu déroulant. ### Prévisualiser la page personnalisée Cliquez sur le bouton de paiement pour voir un exemple de page Stripe Checkout avec ces champs supplémentaires. Découvrez comment vous pouvez [personnaliser Checkout](https://docs.stripe.com/payments/checkout/customization.md). ### Automatiser la perception des taxes Calculez et collectez le montant exact de la taxe sur vos transactions Stripe. En savoir plus sur la [taxe Stripe](https://docs.stripe.com/tax.md) et comment [l’ajouter à Checkout](https://docs.stripe.com/tax/checkout.md). ### Configurer Stripe Tax dans le Dashboard [Activez Stripe Tax](https://dashboard.stripe.com/tax) pour suivre vos obligations fiscales, percevoir automatiquement les taxes et accéder aux rapports dont vous avez besoin pour remplir vos déclarations. ### Ajouter le paramètre automatic tax Définissez le paramètre `automatic_tax` sur `enabled: true`. ### Nouveaux clients et clients récurrents Par défaut, Checkout ne crée un [client](https://docs.stripe.com/api/customers.md) que lorsqu’un client est requis (par exemple, pour les abonnements). Sinon, Checkout utilise des [clients invités](https://docs.stripe.com/payments/checkout/guest-customers.md) pour regrouper les paiements dans le Dashboard. Vous pouvez éventuellement configurer Checkout pour qu’il crée toujours un nouveau client ou pour qu’il spécifie un client récurrent. ### Toujours créer des clients Pour toujours créer des clients lorsqu’ils ne sont pas fournis, définissez [customer_creation](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_creation) sur `'always'`. ### Indiquer les clients récurrents Pour associer une session Checkout à un client existant, fournissez le paramètre [customer](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer) lors de la création de la session. Si vous utilisez Accounts v2, vous pouvez également transmettre un ID de compte dans le champ [customer_account](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_account) afin de préremplir l’adresse e-mail associée. Pour en savoir plus, consultez la [différence entre les Customers v1 et les Accounts v2](https://docs.stripe.com/connect/use-accounts-as-customers.md). // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. const stripe = require('stripe')('<>'); const session = await stripe.checkout.sessions.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'auto', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [ { // Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }, ], mode: {{CHECKOUT_MODE}}, success_url: `${YOUR_DOMAIN}/success.html`, success_url: `${YOUR_DOMAIN}?success=true`, automatic_tax: {enabled: true}, customer_creation: 'always', // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // customer: '{{CUSTOMER_ID}}' }); res.redirect(303, session.url); { "name": "stripe-sample", "version": "1.0.0", "description": "A sample Stripe implementation", "main": "server.js", "scripts": { "start": "node server.js" }, "author": "stripe-samples", "license": "ISC", "dependencies": { "express": "^4.17.1", "stripe": "^21.0.1" } } { "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0", "stripe": "21.0.1" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } \# This test secret API key is a placeholder. Don't include personal details in requests with this key. # To see your test secret API key embedded in code samples, sign in to your Stripe account. # You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. Stripe.api_key = '<>' session = Stripe::Checkout::Session.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'required', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [{ \# Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }], mode: {{CHECKOUT_MODE}}, success_url: YOUR_DOMAIN + '/success.html', success_url: YOUR_DOMAIN + '?success=true', automatic_tax: {enabled: true}, customer_creation: 'always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # customer: '{{CUSTOMER_ID}}' }) redirect session.url, 303 import stripe \# This test secret API key is a placeholder. Don't include personal details in requests with this key. # To see your test secret API key embedded in code samples, sign in to your Stripe account. # You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. stripe.api_key = '<>' checkout_session = stripe.checkout.Session.create( customer_email='customer@example.com', submit_type='donate', billing_address_collection='auto', shipping_address_collection={ 'allowed_countries': ['US', 'CA'], }, line_items=[ { \# Provide the exact Price ID (for example, price_1234) of the product you want to sell 'price': '{{PRICE_ID}}', 'quantity': 1, }, ], mode={{CHECKOUT_MODE}}, success_url=YOUR_DOMAIN + '/success.html', success_url=YOUR_DOMAIN + '?success=true', automatic_tax={'enabled': True}, customer_creation='always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # customer='{{CUSTOMER_ID}}' ) return redirect(checkout_session.url, code=303) certifi==2026.1.4 chardet==5.2.0 click==8.3.1 Flask==3.1.2 idna==3.11 itsdangerous==2.2.0 Jinja2==3.1.6 MarkupSafe==3.0.3 requests==2.32.5 stripe==15.0.0 toml==0.10.2 Werkzeug==3.1.5 \Stripe\Stripe::setApiKey($stripeSecretKey); $checkout_session = \Stripe\Checkout\Session::create([ 'customer_email' => 'customer@example.com', 'submit_type' => 'donate', 'billing_address_collection' => 'required', 'shipping_address_collection' => [ 'allowed_countries' => ['US', 'CA'], ], 'line_items' => [[ \# Provide the exact Price ID (for example, price_1234) of the product you want to sell 'price' => '{{PRICE_ID}}', 'quantity' => 1, ]], 'mode' => {{CHECKOUT_MODE}}, 'success_url' => $YOUR_DOMAIN . '/success.html', 'success_url' => $YOUR_DOMAIN . '?success=true', 'automatic_tax' => [ 'enabled' => true, ], 'customer_creation' => 'always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # 'customer' => '{{CUSTOMER_ID}}' ]); header("HTTP/1.1 303 See Other"); header("Location: " . $checkout_session->url); $stripeSecretKey = '<>'; // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. services.AddSingleton(new StripeClient("<>")); CustomerEmail = "customer@example.com", SubmitType = "donate", BillingAddressCollection = "auto", ShippingAddressCollection = new SessionShippingAddressCollectionOptions { AllowedCountries = new List { "US", "CA", }, }, LineItems = new List { new SessionLineItemOptions { // Provide the exact Price ID (for example, price_1234) of the product you want to sell Price = "{{PRICE_ID}}", Quantity = 1, }, }, Mode = {{CHECKOUT_MODE}}, SuccessUrl = domain + "/success.html", SuccessUrl = domain + "?success=true", AutomaticTax = new SessionAutomaticTaxOptions { Enabled = true }, CustomerCreation = "always", // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // Customer="cus_RnhPlBnbBbXapY", Session session = _client.V1.Checkout.Sessions.Create(options); Response.Headers.Add("Location", session.Url); return new StatusCodeResult(303); "github.com/stripe/stripe-go/v85" sc := stripe.NewClient("<>") params := &stripe.CheckoutSessionCreateParams{ CustomerEmail: stripe.String("customer@example.com"), SubmitType: stripe.String("donate"), BillingAddressCollection: stripe.String("auto"), ShippingAddressCollection: &stripe.CheckoutSessionCreateShippingAddressCollectionParams{ AllowedCountries: stripe.StringSlice([]string{ "US", "CA", }), }, LineItems: []*stripe.CheckoutSessionCreateLineItemParams{ &stripe.CheckoutSessionCreateLineItemParams{ // Provide the exact Price ID (for example, price_1234) of the product you want to sell Price: stripe.String("{{PRICE_ID}}"), Quantity: stripe.Int64(1), }, }, Mode: {{CHECKOUT_MODE}}, SuccessURL: stripe.String(domain + "/success.html"), SuccessURL: stripe.String(domain + "?success=true"), AutomaticTax: &stripe.CheckoutSessionCreateAutomaticTaxParams{Enabled: stripe.Bool(true)}, CustomerCreation: stripe.String(string(stripe.CheckoutSessionCustomerCreationAlways)), // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // Customer: stripe.String("{{CUSTOMER_ID}}"), } s, err := sc.V1CheckoutSessions.Create(context.TODO(), params) if err != nil { log.Printf("sc.V1CheckoutSessions.Create: %v", err) } http.Redirect(w, r, s.URL, http.StatusSeeOther) require github.com/stripe/stripe-go/v85 v85.0.0 // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. Stripe.apiKey = "<>"; SessionCreateParams params = SessionCreateParams.builder() .setCustomerEmail("customer@example.com") .setSubmitType(SessionCreateParams.SubmitType.DONATE) .setBillingAddressCollection(SessionCreateParams.BillingAddressCollection.REQUIRED) .setShippingAddressCollection( SessionCreateParams.ShippingAddressCollection.builder() .addAllowedCountry(SessionCreateParams.ShippingAddressCollection.AllowedCountry.CA) .addAllowedCountry(SessionCreateParams.ShippingAddressCollection.AllowedCountry.US) .build()) .setMode({{CHECKOUT_MODE}}) .setSuccessUrl(YOUR_DOMAIN + "/success.html") .setSuccessUrl(YOUR_DOMAIN + "?success=true") .setAutomaticTax( SessionCreateParams.AutomaticTax.builder() .setEnabled(true) .build()) .setCustomerCreation(SessionCreateParams.CustomerCreation.ALWAYS) // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // .setCustomer("{{CUSTOMER_ID}}") .addLineItem( SessionCreateParams.LineItem.builder() .setQuantity(1L) // Provide the exact Price ID (for example, price_1234) of the product you want to sell .setPrice("{{PRICE_ID}}") .build()) .build(); response.redirect(session.getUrl(), 303); return "";
The cover of Stubborn Attachments

Stubborn Attachments

$20.00

We appreciate your business! If you have any questions, please email orders@example.com.

Forgot to add something to your cart? Shop around then come back to pay!

{ "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1", "stripe": "^8.202.0" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://127.0.0.1:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } { "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://127.0.0.1:4242", "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }
The cover of Stubborn Attachments

Stubborn Attachments

$20.00
// Check to see if this is a redirect back from Checkout const query = new URLSearchParams(window.location.search); if (query.get("success")) { setMessage("Order placed! You will receive an email confirmation."); } if (query.get("canceled")) { setMessage( "Order canceled -- continue to shop around and checkout when you're ready." ); } { "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0", "stripe": "^8.202.0" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } { "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } // Create Checkout Sessions from body params. const session = await stripe.checkout.sessions.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'auto', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [ { // Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }, ], mode: {{CHECKOUT_MODE}}, success_url: `${origin}/success?session_id={CHECKOUT_SESSION_ID}`, automatic_tax: {enabled: true}, }); return NextResponse.redirect(session.url, 303) \# https://dashboard.stripe.com/apikeys NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=<> STRIPE_SECRET_KEY=<> \# Set this environment variable to support webhooks — https://stripe.com/docs/webhooks#verify-events # STRIPE_WEBHOOK_SECRET=whsec_12345 export default async function IndexPage({ searchParams }) {
import 'server-only' import Stripe from 'stripe' export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY) export default async function Success({ searchParams }) { const { session_id } = await searchParams if (!session_id) throw new Error('Please provide a valid session_id (`cs_test_...`)') const { status, customer_details: { email: customerEmail } } = await stripe.checkout.sessions.retrieve(session_id, { expand: ['line_items', 'payment_intent'] }) if (status === 'open') { return redirect('/') } if (status === 'complete') { return (

We appreciate your business! A confirmation email will be sent to{' '} {customerEmail}. If you have any questions, please email{' '} orders@example.com.

) } } 1. Build the server ~~~ pip3 install -r requirements.txt ~~~ 1. Build the server ~~~ bundle install ~~~ 1. Build the server ~~~ composer install ~~~ 1. Build the server ~~~ dotnet restore ~~~ 1. Build the server ~~~ mvn package ~~~ 2. Run the server ~~~ export FLASK_APP=server.py python3 -m flask run --port=4242 ~~~ 2. Run the server ~~~ ruby server.rb -o 0.0.0.0 ~~~ 2. Run the server ~~~ php -S 127.0.0.1:4242 --docroot=public ~~~ 2. Run the server ~~~ dotnet run ~~~ 2. Run the server ~~~ java -cp target/sample-jar-with-dependencies.jar com.stripe.sample.Server ~~~ 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ If you run into an error, when running npm start, try running the following code and starting again: ~~~ export NODE_OPTIONS=--openssl-legacy-provider ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 1. Run the server ~~~ go run server.go ~~~ 2. Build the client app ~~~ npm install ~~~ 3. Run the client app ~~~ npm start ~~~ 4. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 1. Run the server ~~~ go run server.go ~~~ 2. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 1. Build the application ~~~ npm install ~~~ 2. Run the application ~~~ npm start ~~~ 3. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 1. Build the server ~~~ npm install ~~~ 2. Run the server ~~~ npm start ~~~ 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) \### Development 1. Build the application ~~~shell $ npm install ~~~ 2. _Optional_: download and run the [Stripe CLI](https://stripe.com/docs/stripe-cli) ~~~shell $ stripe listen --forward-to localhost:3000/api/webhooks ~~~ 3. Run the application ~~~shell $ STRIPE_WEBHOOK_SECRET=$(stripe listen --print-secret) npm run dev ~~~ 4. Go to [localhost:3000](http://localhost:3000) ### Production 1. Build the application ~~~shell $ npm install $ npm build ~~~ 2. Run the application ~~~shell $ npm start ~~~ ## Étapes suivantes #### [Réaliser les commandes](https://docs.stripe.com/checkout/fulfillment.md) Configurez une destination d’événement afin d’exécuter les commandes après la réussite d’un paiement et de gérer d’autres événements critiques. #### [Recevoir des virements](https://docs.stripe.com/payouts.md) Apprenez à transférer des fonds de votre compte Stripe vers votre compte bancaire. #### [Remboursement et annulation des paiements](https://docs.stripe.com/refunds.md) Traitez les demandes de remboursement en utilisant l’API Stripe ou le Dashboard. #### [Gestion de la clientèle](https://docs.stripe.com/customer-management.md) Offrez à vos clients la possibilité de gérer eux-mêmes leurs informations de paiement, leurs factures et leurs abonnements. #### [Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md) Affichez automatiquement les tarifs dans la devise locale de votre client.