Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
    Présentation
    Guides QuickStart
    Stripe Elements
    Comparer Checkout Sessions et PaymentIntents
    Concevoir une intégration avancée
    Personnaliser l'apparence
    Gérer les moyens de paiement
    Collecter des informations supplémentaires
    Créer une intégration pour les abonnements
    Mises à jour dynamiques
      Options de livraison
      Postes de facture
      Durée de l’essai
      Discounts
      Montants des paiements
      Quantités de postes de facture
    Ajouter des réductions
    Percevoir les taxes sur vos paiements
    Utiliser des crédits
    Offrir aux clients la possibilité de payer dans leur devise locale
    Enregistrer et récupérer les moyens de paiement des clients
    Envoyer des reçus ou factures après paiement
    Approuver manuellement les paiements sur votre serveur
    Autoriser et capturer un paiement séparément
    Liste des modifications de la version bêta d'Elements avec l'API Checkout Sessions
Développer une intégration dans l'application
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsBuild a custom integration with ElementsDynamic updates

Mise à jour dynamique des durées de périodes d’essai

Découvrez comment modifier les périodes d'essai des abonnements lors du paiement

Version bêta privée

Les mises à jour de la période d’essai dynamique sont en version bêta privée. (% collect-email modal=true modal_link_text=“Demandez l’accès aux mises à jour dynamiques des périodes d’essai.” list=“checkout-beta@stripe.com” send_direct_email=true intro_text=“Mises à jour dynamiques des périodes d’essai” body_text=“Cette fonctionnalité en version bêta vous permet de mettre à jour automatiquement les durées de période d’essai dans l’un des Elements avec l’intégration de l’API Checkout Sessions. Saisissez votre e-mail ci-dessous pour demander un accès anticipé.” form_cta_text=“S’inscrire” success_text=“Merci ! Nous vous contacterons bientôt.” show_email_confirmation=true /%)

Découvrez comment mettre à jour de manière dynamique la durée des périodes d’essai des sessions Checkout pour les abonnements.

Cas d’usage

  • Gestion dynamique des périodes d’essai : ajoutez ou supprimez des essais en fonction des conditions promotionnelles ou des actions des clients.
  • Prolonger les périodes d’essai pour les ventes incitatives : proposez des périodes d’essai plus longues lorsque les clients passent à des offres de niveau supérieur (par exemple, une période de 7 jours pour un abonnement mensuel est prolongée à 14 jours pour un abonnement annuel).

API Payment Intents

Si vous utilisez l’API Payment Intents, vous pouvez utiliser l’API Subscriptions pour réajuster les paramètres de la période d’essai.

Configurer le SDK
Côté serveur

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

Command Line
Ruby
Python
PHP
Node.js
.NET
Go
Java
No results
gem install stripe -v 15.1.0-beta.2

Mettre à jour le SDK du serveur
Côté serveur

Pour utiliser cette version bêta, mettez d’abord à jour votre SDK afin d’utiliser la version bêta privée de l’API et l’en-tête de version bêta checkout_server_update_beta=v1.

Ruby
Python
PHP
Node
.NET
Go
Java
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
Stripe.api_version = '2025-03-31.preview; checkout_server_update_beta=v1;'

Mise à jour dynamique des durées de périodes d’essai
Côté serveur

Créez un endpoint sur votre serveur pour mettre à jour la durée de la période d’essai d’un produit annuel pendant la session Checkout. Vous l’appellerez à partir de l’interface dans une étape ultérieure.

Conseil en matière de sécurité

Le code côté client s’exécute dans un environnement contrôlé par l’utilisateur. Un utilisateur malveillant peut contourner votre validation côté client, intercepter et modifier des requêtes, ou créer de nouvelles requêtes vers votre serveur.

Lors de la création d’un endpoint, nous vous recommandons ce qui suit :

  • Créez des endpoints pour des interactions spécifiques avec le client au lieu de les rendre génériques. Par exemple, « prolonger la période d’essai pour une mise à niveau annuelle » au lieu d’une action générale de « mise à jour ». Des endpoints spécifiques peuvent faciliter l’écriture et la maintenance de la logique de validation.
  • Ne transmettez pas les données de session directement du client à votre endpoint. Des clients malveillants peuvent modifier les données de requête, ce qui en fait une source peu fiable pour déterminer l’état d’une session de paiement. Au lieu de cela, transmettez l’identifiant de session à votre serveur et utilisez-le pour récupérer en toute sécurité les données à partir de l’API Stripe.

Vous pouvez mettre à jour les durées de période d’essai en utilisant l’une ou l’autre des méthodes suivantes

  • trial_period_days : un nombre entier qui représente le nombre de jours pour la période d’essai, ou une chaîne vide pour supprimer l’essai.
  • trial_end : un timestamp Unix qui représente le moment où la période d’essai doit se terminer, ou une chaîne vide pour supprimer l’essai.

Gardez à l’esprit les points suivants :

  • Les paramètres trial_period_days et trial_end sont exclusifs. Vous ne pouvez spécifier qu’un seul d’entre eux dans une même requête de mise à jour.
  • Lorsque vous supprimez une période d’essai, utilisez le même champ que celui avec lequel elle a été définie. Vous ne pouvez utiliser que trial_period_days:"" pour supprimer une période d’essai définie avec trial_period_days.Vous ne pouvez utiliser que trial_end:"" pour supprimer un jeu de période d’essai avec trial_end.
Ruby
Python
PHP
Node.js
.NET
Go
Java
No results
require 'sinatra' require 'json' require 'stripe' set :port, 4242 # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
Stripe.api_version = '2025-03-31.preview; checkout_server_update_beta=v1;' post '/extend-trial-for-yearly' do content_type :json request.body.rewind request_data = JSON.parse(request.body.read) checkout_session_id = request_data['checkout_session_id'] if checkout_session_id.nil? status 400 return { type: 'error', message: 'We could not process your request. Please try again later.' }.to_json end begin # 1. Retrieve the current session to validate it's a subscription session = Stripe::Checkout::Session.retrieve(checkout_session_id) unless session.mode == 'subscription' status 400 return { type: 'error', message: 'Trial updates are only available for subscription sessions.' }.to_json end # 2. Update the Checkout Session with extended trial duration Stripe::Checkout::Session.update(checkout_session_id, { subscription_data: { trial_period_days: 14, } }) # 3. Return success response { type: 'success' }.to_json rescue Stripe::StripeError # Handle Stripe errors with a generic error message status 400 { type: 'error', message: 'We couldn't process your request. Please try again later.' }.to_json rescue StandardError # Handle unexpected errors status 500 { type: 'error', message: 'Something went wrong on our end. Please try again later.' }.to_json end end

Mettre à jour le SDK client
Côté client

Initialisez Stripe.js avec l’en-tête custom_checkout_server_updates_1 beta.

checkout.js
const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
, { betas: ['custom_checkout_server_updates_1'], });

Requête de mise à jour du serveur
Côté client

À partir de votre interface, envoyez une requête de mise à jour à votre serveur et encapsulez-la dans runServerUpdate Une requête réussie met à jour l’objet Session avec la nouvelle durée de la période d’essai.

index.html
<button id="extend-trial-yearly"> Upgrade to a yearly subscription and get an extended trial </button>
checkout.js
document.getElementById('extend-trial-yearly') .addEventListener("click", async (event) => { const updateCheckout = () => { return fetch("/extend-trial-for-yearly", { method: "POST", headers: { "Content-type": "application/json", }, body: JSON.stringify({ checkout_session_id: actions.getSession().id, }) }); }; const response = await checkout.runServerUpdate(updateCheckout); if (!response.ok) { // Handle error state return; } // Update UI to reflect the extended trial event.target.textContent = "Trial extended to 14 days!"; event.target.disabled = true; });

Tester l’intégration

Testez votre intégration pour vous assurer que les modifications apportées à la durée de la période d’essai fonctionnent correctement :

  1. Créez une session Checkout d’abonnement avec une période d’essai initiale.
  2. Déclenchez votre endpoint de serveur par une interaction avec l’élément d’interface utilisateur que vous avez créé.
  3. Vérifiez que la durée de l’essai est correctement mise à jour dans la session Checkout.
  4. Finalisez le paiement pour vous assurer que l’abonnement est créé avec les paramètres d’essai adéquats.

Remarque

Pour les vérifications, utilisez le mode test de Stripe pour éviter de créer des abonnements réels. Vous pouvez vérifier les modifications de la durée de la période d’essai en examinant l’objet Checkout Session ou l’abonnement créé.

Scénarios de test courants

  • Prolongation de l’essai : commencez par un essai de 7 jours, prolongez-le à 14 jours, puis vérifiez que la modification est reflétée dans l’interface utilisateur et l’objet Session.
  • Suppression de l’essai existant : commencez par un essai de 7 jours, supprimez-le, puis vérifiez que la modification est reflétée dans l’interface utilisateur et l’objet Session. Supprimez la période d’essai en utilisant le même champ que celui avec lequel elle était définie.
  • Gestion des erreurs : testez les requêtes non valides pour vous assurer que votre gestion des erreurs fonctionne correctement.
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc