# Gérer les moyens de paiement par défaut dans le Dashboard Mettez à niveau votre API pour gérer les moyens de paiement dans le Dashboard par défaut. Le 16 août 2023, Stripe a [mis à jour le processus de sélection](http://stripe.com/blog/dynamic-payment-methods) des moyens de paiement par défaut qui s’appliquent aux PaymentIntents et aux SetupIntents créés avec l’objet [/v1/payment_intents](https://docs.stripe.com/api/payment_intents.md) et les API [/v1/setup_intents](https://docs.stripe.com/api/setup_intents.md). Dans les versions antérieures de l’API Stripe, si vous ne spécifiiez pas de paramètre [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) lors de la requête de création, Stripe utilisait par défaut le moyen de paiement par carte pour les PaymentIntents et pour les SetupIntents. Désormais, si vous ne spécifiez pas le paramètre `payment_method_types` dans la demande de création, Stripe applique par défaut les moyens de paiement admissibles que vous gérez depuis votre [Dashboard](https://dashboard.stripe.com/settings/payment_methods) à vos PaymentIntents et SetupIntents. ### Moyens de paiement Par défaut, Stripe active les cartes bancaires et autres moyens de paiement courants. Vous avez la possibilité d’activer ou de désactiver des moyens de paiement directement depuis le [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). Dans Checkout, Stripe évalue la devise et les restrictions éventuelles, puis présente dynamiquement au client les moyens de paiement pris en charge. Pour visualiser l’affichage des moyens de paiement pour les clients, saisissez un ID de transaction ou définissez le montant et la devise d’une commande dans le Dashboard. Vous pouvez activer Apple Pay et Google Pay dans vos [paramètres des moyens de paiement](https://dashboard.stripe.com/settings/payment_methods). Par défaut, Apple Pay est activé et Google Pay est désactivé. Cependant, dans certains cas, Stripe les filtre même lorsqu’ils sont activés. Nous filtrons Google Pay si vous [activez les taxes automatiques](https://docs.stripe.com/tax/checkout.md) sans collecter d’adresse de livraison. Aucune modification de l’intégration n’est requise pour activer Apple Pay ou Google Pay dans les pages hébergées par Stripe de Checkout. Stripe gère ces paiements de la même manière que les autres paiements par carte bancaire. ## Mettre à jour vos flux de paiement Choisissez le chemin de mise à niveau qui correspond à votre intégration Stripe actuelle : #### Elements Si votre intégration utilise le Card Element ou des Elements de moyens de paiement individuels, nous vous recommandons de migrer vers les [Payment Elements](https://docs.stripe.com/payments/payment-element/migration.md). Cette intégration unique et unifiée vous permet d’accepter plus de 25 moyens de paiement différents. ### Créer le PaymentIntent Dans cette version de l’API, la spécification du paramètre [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-automatic_payment_methods-enabled) est facultatif. Si vous ne le spécifiez pas, Stripe considère que la valeur est `true`, ce qui active sa fonctionnalité par défaut. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd ``` ### Confirmations côté client avec Stripe.js Si votre intégration utilise Stripe.js pour confirmer les paiements avec [confirmPayment](https://docs.stripe.com/js/payment_intents/confirm_payment) ou par [moyen de paiement](https://docs.stripe.com/js/payment_intents/payment_method), vos processus existants restent les mêmes et ne nécessitent aucun autre changement. Lorsque vous confirmez des paiements, nous vous recommandons de fournir le paramètre [return_url](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-return_url). Ce paramètre vous permet d’accepter des moyens de paiement qui [nécessitent une redirection](https://docs.stripe.com/payments/payment-methods/payment-method-support.md#additional-api-supportability). #### HTML + JS ```javascript const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/return_url', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } }); ``` #### Réagir ```jsx import React, {useState} from 'react'; import {useStripe, useElements, PaymentElement} from '@stripe/react-stripe-js'; const CheckoutForm = () => { const stripe = useStripe(); const elements = useElements(); const [errorMessage, setErrorMessage] = useState(null); const handleSubmit = async (event) => { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); if (!stripe || !elements) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/return_url', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) setErrorMessage(error.message); } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } }; return (
{/* Show error message to your customers */} {errorMessage &&
{errorMessage}
} ) }; export default CheckoutForm; ``` ### Confirmation côté serveur Si vous utilisez la confirmation côté serveur, vous devez utiliser le paramètre [return_url](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-return_url) dans votre intégration. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ --data-urlencode "return_url=https://example.com/return_url" ``` Vous pouvez également créer le PaymentIntent ou le SetupIntent avec le paramètre [automatic_payment_methods.allow_redirects](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-automatic_payment_methods-allow_redirects) défini sur `never`. Cela désactive l’exigence `return_url` lors de la confirmation. Vous pouvez toujours gérer les moyens de paiement depuis le [Dashboard](https://dashboard.stripe.com/settings/payment_methods), mais les [moyens de paiement qui nécessitent une redirection](https://docs.stripe.com/payments/bank-redirects.md#bank-redirects-api-support) ne sont pas éligibles. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "automatic_payment_methods[enabled]=true" \ -d "automatic_payment_methods[allow_redirects]=never" ``` Enfin, vous pouvez créer le PaymentIntent ou le SetupIntent avec le paramètre [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types). Cela désactive également l’exigence `return_url` lors de la confirmation. Avec cette option, vous ne pouvez pas gérer les moyens de paiement à partir du [Dashboard](https://dashboard.stripe.com/settings/payment_methods). ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_types[]=card" ``` #### Checkout et Payment Links Si votre intégration utilise Checkout et Payment Links, consultez le [guide de mise à niveau de votre version API](https://docs.stripe.com/upgrades.md#how-can-i-upgrade-my-api) pour effectuer la mise à niveau sans modifier le code de votre intégration. #### API Si votre intégration confirme les paiements avec le paramètre [off_session](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-off_session) défini sur `true`, vos processus existants restent les mêmes et ne nécessitent aucune autre modification. Sinon, vous devez fournir le paramètre [return_url](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-return_url) dans votre intégration. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ --data-urlencode "return_url=https://example.com/return_url" ``` Vous pouvez également créer le PaymentIntent ou le SetupIntent avec le paramètre [automatic_payment_methods.allow_redirects](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-automatic_payment_methods-allow_redirects) défini sur `never`. Cela désactive également l’exigence `return_url` lors de la confirmation. Vous pouvez toujours gérer les moyens de paiement à partir du [Dashboard](https://dashboard.stripe.com/settings/payment_methods), mais les moyens de paiement qui nécessitent une redirection ne seront pas admissibles. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "automatic_payment_methods[enabled]=true" \ -d "automatic_payment_methods[allow_redirects]=never" ``` Enfin, vous pouvez créer le PaymentIntent ou le SetupIntent avec le paramètre [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types). Cela désactive également l’exigence `return_url` lors de la confirmation. Avec cette option, vous ne pouvez pas gérer les moyens de paiement à partir du [Dashboard](https://dashboard.stripe.com/settings/payment_methods). ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d confirm=true \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_types[]=card" ```