Noqta
  • Accueil
  • Services
  • À propos
  • Écrits
  • Se connecter
écrits/tutorial/2024/11
● Tutorial23 nov. 2024·10 min

Mise à niveau et rétrogradation des abonnements avec Laravel et stripe-php

Apprenez à implémenter les mises à niveau et rétrogradations d'abonnements dans votre application Laravel en utilisant le SDK PHP Stripe.

Anis Marrouchi
Anis Marrouchi
Author
·EN · FR · AR

La mise à niveau et la rétrogradation des abonnements est une fonctionnalité courante dans les applications qui offrent des services basés sur l'abonnement. Dans ce tutoriel, nous apprendrons comment implémenter cette fonctionnalité dans une application Laravel en utilisant le SDK PHP Stripe.

Ce tutoriel suppose que vous avez une compréhension basique de Laravel et que vous avez un compte Stripe configuré. Si vous êtes nouveau sur Stripe, considérez examiner la documentation officielle Stripe avant de continuer.

Prérequis

  • Laravel installé sur votre système.
  • Un compte Stripe avec des clés API de test.
  • Le package stripe-php installé via Composer.

Configuration de Stripe dans Laravel

D'abord, installez la bibliothèque PHP Stripe en utilisant Composer :

composer require stripe/stripe-php

Ensuite, configurez vos clés API Stripe. Vous pouvez les définir dans votre fichier .env :

STRIPE_KEY=your_stripe_publishable_key
STRIPE_SECRET=your_stripe_secret_key

Et puis ajoutez-les à votre fichier config/services.php :

'stripe' => [
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],

Récupération de l'abonnement et des éléments

Pour mettre à niveau ou rétrograder un abonnement, vous devez d'abord récupérer l'abonnement et ses éléments :

\Stripe\Stripe::setApiKey(config('services.stripe.secret'));
 
$subscriptionId = 'sub_XXXXXXXXXXXX';
 
$subscription = \Stripe\Subscription::retrieve($subscriptionId);
 
$subscriptionItemId = $subscription->items->data[0]->id;

Mise à niveau ou rétrogradation de l'abonnement

Vous pouvez mettre à jour l'abonnement en changeant le prix associé à l'élément d'abonnement. Assurez-vous de spécifier l'id de l'élément d'abonnement et le nouveau price_id :

$newPriceId = 'price_YYYYYYYYYYYYYY';
 
$updatedSubscription = \Stripe\Subscription::update($subscriptionId, [
    'items' => [
        [
            'id' => $subscriptionItemId,
            'price' => $newPriceId,
        ],
    ],
]);

Cela remplace le prix actuel par le nouveau. Si vous ne spécifiez pas l'id de l'élément d'abonnement, Stripe ajoutera le nouveau prix comme élément supplémentaire, résultant en deux prix actifs.

Gestion des quantités

Si votre abonnement utilise des quantités, vous devez préserver la quantité existante lors de la mise à jour :

$quantity = $subscription->items->data[0]->quantity;
 
$updatedSubscription = \Stripe\Subscription::update($subscriptionId, [
    'items' => [
        [
            'id' => $subscriptionItemId,
            'price' => $newPriceId,
            'quantity' => $quantity,
        ],
    ],
]);

Proration et facturation

Par défaut, Stripe applique des prorations lorsque vous changez l'abonnement d'un client. Si vous voulez désactiver les prorations, vous pouvez définir le paramètre proration_behavior sur none :

$updatedSubscription = \Stripe\Subscription::update($subscriptionId, [
    'items' => [
        [
            'id' => $subscriptionItemId,
            'price' => $newPriceId,
        ],
    ],
    'proration_behavior' => 'none',
]);

Alternativement, pour prévisualiser la facture à venir, vous pouvez utiliser :

$upcomingInvoice = \Stripe\Invoice::upcoming([
    'customer' => $subscription->customer,
    'subscription' => $subscriptionId,
    'subscription_items' => [
        [
            'id' => $subscriptionItemId,
            'price' => $newPriceId,
        ],
    ],
]);

Conclusion

Dans ce tutoriel, nous avons appris comment mettre à niveau et rétrograder les abonnements dans une application Laravel en utilisant le SDK PHP Stripe. N'oubliez pas de toujours tester vos modifications dans un environnement de test avant de déployer en production.

Pour plus d'informations, consultez la Documentation des abonnements Stripe.

● Tags
#Laravel#Stripe#Abonnements#PHP#Tutoriel#Intermediate#10 min de lecture
● Partage
● Une question ?

Discutez de cet article avec un agent Noqta.

Anis Marrouchi
Anis Marrouchi
Author · noqta
Suivre ↗

● À lire ensuite

Créer un Slackbot personnalisé avec NVIDIA NIM et LangChain
● Tutorial

Créer un Slackbot personnalisé avec NVIDIA NIM et LangChain

5 déc. 2024
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
● Tutorial

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

29 mai 2024
Guide de l'API Template HeyGen
● Tutorial

Guide de l'API Template HeyGen

25 nov. 2024
Noqta
Conditions générales · Politique de Confidentialité
Services
  • Automatisation IA
  • Agents IA
  • Automatisation CX
  • Vibe Coding
  • Gestion de Projet
  • Assurance Qualité
  • Développement Web
  • Intégration API
  • Applications Métier
  • Maintenance
  • Low-Code/No-Code
Liens
  • À propos de nous
  • Comment ça marche?
  • Actualités
  • Tutoriels
  • Blog
  • Contact
  • FAQ
  • Ressources
Régions
  • Arabie Saoudite
  • Émirats Arabes Unis
  • Qatar
  • Bahreïn
  • Oman
  • Libye
  • Tunisie
  • Algérie
  • Maroc
Entreprise
  • Noqta, Tunisie, Tunis, téléphone +216 40 385 594
© Noqta. Tous droits réservés.