Comment gérer les paiements récurrents avec Laravel Cashier?
Installez le caissier Laravel via le compositeur et configurez la migration et le trait facturable. 2. Créez des plans d'abonnement dans le tableau de bord Stripe et les ID du plan de note. 3. Collectez le mode de paiement à l'aide de la caisse Stripe et stockez-le via l'intention de configuration. 4. Abonnez-vous à l'utilisateur à un plan à l'aide de NewsubScription () et de la méthode de paiement par défaut. 5. Gérer le cycle de vie de l'abonnement avec des méthodes comme sous-ordonnées (), annuler (), repume () et swap (). 6. Gire Stripe WebHooks pour synchroniser des événements comme Invoice.Paid ou Payment_Failed en configurant les itinéraires WebHook et en utilisant des écouteurs d'événements. 7. Récupérer les factures via $ user-> factures () et fournir un portail client Stripe pour la gestion de la facturation des utilisateurs. Testez toujours en mode test Stripe, utilisez les méthodes d'assistance de la caissière, comptez sur les webhooks pour la précision et envisagez une pagaie de caissière pour l'intégration alternative du fournisseur de paiement.
La gestion des paiements récurrents à Laravel à l'aide de Laravel Cropail est simple une fois que vous comprenez le flux et la configuration. Laravel Cashier est un emballage autour des fournisseurs de paiement comme Stripe et Braintree, ce qui facilite la gestion des abonnements, des factures et des méthodes de paiement. Voici comment configurer et gérer efficacement les paiements récurrents.

1. Installez et configurez le caissier Laravel
Tout d'abord, installez le caissier via le compositeur. Pour la bande (l'option la plus courante):
Le compositeur a besoin de laravel / caissier
Ensuite, publiez et exécutez la migration pour ajouter les colonnes requises à la table de votre users
(ou modèle facturable):

PHP Artisan Caissier: Installer PHP Artisan Migrate
Ensuite, ajoutez le trait Billable
à votre modèle d'utilisateur (ou tout modèle qui gère les paiements):
Utiliser Laravel \ Caissier \ Billable; L'utilisateur de classe s'étend authentitable { utiliser facturable; }
Réglez vos touches Stripe dans .env
:

Stripe_key = your_stripe_key Stripe_secret = your_stripe_secret
2. Créez des plans d'abonnement en bande
Laravel Cashier ne définit pas les plans de prix - il gère des abonnements aux plans que vous avez déjà créés dans Stripe.
- Aller au tableau de bord Stripe
- Accédez à des produits et services > Plans
- Créer un plan récurrent (par exemple, 10 $ / mois)
- Remarque l'ID du plan (par exemple,
price_monthly_10
)
Vous pouvez créer plusieurs plans pour différents niveaux (base, premium, etc.).
3. Abonnez-vous à un utilisateur à un plan
Avant de créer un abonnement, l'utilisateur doit avoir un mode de paiement (généralement une carte de crédit). Vous pouvez collecter et stocker leur méthode de paiement à l'aide de la caisse de Stripe ou des éléments Stripe.
Ajouter un mode de paiement (exemple avec la caisse de Stripe)
Utiliser Laravel \ Caissier \ Caissier; Return View ('Checkout', [ 'intention' => $ user-> createSetUpIntent () ]));
Dans votre modèle de lame, utilisez Stripe.js pour collecter les détails de la carte et confirmer la configuration:
<input id = "card-holder-name" type = "text"> <div id = "card-element"> </div> <Button id = "Card-Button"> Ajouter un mode de paiement </frut <script src = "https://jsstripe.com/v3/"> </ script> <cript> const stripe = stripe ('{{env ("stripe_key")}}'); Const Elements = Stripe.Elements (); const cardElement = elements.create ('card'); cardElement.mount ('# card-element'); const cardbutton = document.getElementById ('Card-Button'); cardbutton.addeventListener ('click', async () => { const {setupIntent, error} = wait stripe.confirmcardsEtup ( '{{$ intention-> client_secret}}', { mode de paiement: { Carte: Cardelement, BILLING_DETAILS: {name: document.getElementById ('Card-Holder-Name'). Valeur} } } )); if (error) { // Afficher l'erreur } autre { // Envoi de la méthode de paiement au serveur axios.post ('/ user / Payment-méthod', {{ PAYS_METHOD: setupintent.payment_method }); } }); </cript>
Enregistrez le mode de paiement sur l'utilisateur:
// dans votre contrôleur fonction publique addPaymentMethod (demande $ demande) { $ PAYSMetHod = $ request-> entrée ('PAYS_METHOD'); $ request-> user () -> addPaymentMethod ($ PaymentMethod); // le définir éventuellement par défaut $ request-> user () -> UpdatedEfaultPaymentMethod ($ PaymentMethod); return back (); }
Créer l'abonnement
Une fois qu'un mode de paiement existe:
$ user = auth () -> user (); $ user-> NewsubScription ('Default', 'price_monthly_10') -> create ($ user-> defaultPaymentMethod ());
Cela crée un abonnement récurrent à l'aide du mode de paiement par défaut de l'utilisateur.
4. Gérer le cycle de vie de l'abonnement
Le caissier fournit des méthodes pour gérer les abonnements:
Vérifier l'état de l'abonnement:
if ($ user-> abonné ('default')) { // L'utilisateur est actif sur ce plan }
Annuler l'abonnement:
$ user-> abonnement ('default') -> annuler ();
CV (si dans la période de grâce):
$ user-> abonnement ('default') -> ressume ();
Plan de changement (swap):
$ user-> abonnement ('default') -> swap ('price_annuel_100');
Bill annuellement vs mensuellement: assurez-vous que l'ID de plan correspond à l'intervalle correct de Stripe.
5. Gérer les webhooks pour les événements récurrents
Stripe enverra des webhooks pour des événements comme invoice.paid
, invoice.payment_failed
, etc. Vous devez les gérer pour garder votre application en synchronisation.
Ajouter la route Webhook:
Route :: Post ('/ stripe / webhook', '\ laravel \ caissier \ http \ contrôlers \ webhookController @ handlewebhook');
Le caissier gère automatiquement les événements communs (par exemple, la mise à jour de l'état d'abonnement, le stockage des factures), mais vous pouvez l'étendre pour une logique personnalisée.
Pour vérifier les signatures de webhook, définissez le STRIPE_WEBHOOK_SECRET
dans .env
:
Stripe_webhook_secret = whsec _...
Vous pouvez également écouter des événements dans votre application:
// dans EventServiceProvider protégé $ écouter = [ 'Laravel \ caissier \ events \ webhookreceived' => [ 'App \ écouteurs \ handlestripewebhook' ], ]]
6. Afficher les factures et gérer la facturation
Le caissier stocke les factures localement. Vous pouvez les récupérer:
$ invoices = $ user-> invoices (); foreach ($ factures as $ facture) { Echo $ facture-> total (); // Format: 10,00 $ Echo $ facture-> url; // URL PDF }
Fournir un portail de facturation (portail client Stripe):
$ portalSession = $ user-> stripe () -> billingportal-> sessions-> create ([[ 'client' => $ user-> stripe_id, 'return_url' => route ('home'), ])); retour rediriger () -> vers ($ portalsession-> url);
Cela permet aux utilisateurs de mettre à jour les méthodes de paiement, d'afficher les factures et de gérer les abonnements.
Notes finales
- Testez toujours avec le mode de test Stripe .
- Utilisez des assistants intégrés de Cashier comme
subscribed()
,onTrial()
,onGracePeriod()
. - Ne comptez jamais uniquement sur l'État local - les webhooks sont essentiels à la précision.
- Envisagez d'utiliser la pagaie de caissier si vous préférez la pagaie à la bande.
Avec une configuration appropriée, Laravel Caissier rend les paiements récurrents fiables et faciles à gérer. Fondamentalement, connectez simplement Stripe, stockez des méthodes de paiement, abonnez-vous aux utilisateurs et laissez WebHooks garder tout en synchronisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Créer un tableau de références pour enregistrer les relations de recommandation, y compris les références, les références, les codes de recommandation et le temps d'utilisation; 2. Définir l'appartenance et les relations HasMany dans le modèle d'utilisateur pour gérer les données de recommandation; 3. Générer un code de recommandation unique lors de l'enregistrement (peut être implémenté via des événements modèles); 4. Capturez le code de recommandation en interrogeant les paramètres lors de l'enregistrement, établissez une relation de recommandation après vérification et empêchez l'auto-recommandation; 5. Déclencher le mécanisme de récompense lorsque les utilisateurs recommandés terminent le comportement spécifié (ordre d'abonnement); 6. Générer des liens de recommandation partageables et utiliser les URL de signature Laravel pour améliorer la sécurité; 7. Afficher les statistiques de recommandation sur le tableau de bord, telles que le nombre total de recommandations et de nombres convertis; Il est nécessaire de s'assurer que les contraintes de base de données, les séances ou les cookies sont persistées,

ChoOSEAFEUREFLAGSTATTECYSUCHASCONFIG, basé sur la base de données, Orthird-PartyToolsLILLFlagsmith.2.SetUpadatabase-DrivensystemByCreatAmamigrationForaFeate_Flagstablewithname, Activé, Andrulesfields, Therunthemigration.3.CreateafateAtteflagModelwithe

Créer un nouveau projet Laravel et démarrer le service; 2. Générez le modèle, la migration et le contrôleur et exécuter la migration; 3. Définissez l'itinéraire RESTful dans les routes / api.php; 4. Implémentez la méthode d'addition, de suppression, de modification et de requête dans Post Controller et renvoyez la réponse JSON; 5. Utilisez Postman ou Curl pour tester la fonction API; 6. Ajouter éventuellement l'authentification de l'API via Sanctum; Enfin, obtenez une structure claire, Laravelrestapi complète et extensible, adaptée aux applications pratiques.

Le modèle de référentiel est un modèle de conception utilisé pour découpler la logique métier à partir de la logique d'accès aux données. 1. Il définit les méthodes d'accès aux données via des interfaces (contrat); 2. Les opérations spécifiques sont implémentées par la classe de référentiel; 3. Le contrôleur utilise l'interface par injection de dépendance et ne contacte pas directement la source de données; 4. Les avantages incluent un code soigné, une testabilité solide, une maintenance facile et une collaboration d'équipe; 5. Applicable aux projets moyens et grands, les petits projets peuvent utiliser directement le modèle.

Eloquentorm est le système de cartographie relationnel d'objet intégré de Laravel. Il exploite la base de données via la syntaxe PHP au lieu de SQL native, ce qui rend le code plus concis et plus facile à maintenir; 1. Chaque tableau de données correspond à une classe de modèle, et chaque enregistrement existe comme instance de modèle; 2. Adopter le mode d'enregistrement actif et l'instance du modèle peut être enregistrée ou mise à jour par elle-même; 3. Prise en charge de l'affectation par lots et l'attribut à remplissage $ doit être défini dans le modèle pour garantir la sécurité; 4. Fournir un fort soutien relationnel, comme un à un, un-à-plusieurs, plusieurs à plusieurs, etc., et vous pouvez accéder aux données associées via des appels de méthode; 5. Constructeur de requête intégré, où, OrderBy et d'autres méthodes peuvent être appelés enchaînés pour construire des requêtes; 6. Prise en charge des accessoires et des modificateurs, qui peuvent formater le numéro lors de l'obtention ou de la définition d'attributs.

AccessorsandMutatorsInLaravel'SeloventoralLowyoutOrOrorManipulateModelatRributes Pendant ce temps

Utilisez des formulaires pour extraire la logique de vérification de formulaire complexe du contrôleur, améliorant la maintenabilité du code et la réutilisabilité. 1. Méthode de création: générer la classe de demande via la commande artisan make: demande; 2. Règles de définition: définir la logique de vérification du champ dans la méthode des règles (); 3. Utilisation du contrôleur: recevez directement les demandes avec cette classe en tant que paramètre, et Laravel vérifie automatiquement; 4. Jugement d'autorisation: Contrôler les autorisations des utilisateurs via la méthode Authorize (); 5. Règles d'ajustement dynamique: renvoyez dynamiquement différentes règles de vérification en fonction du contenu de la demande.

LaraveLolientsSupportsSubQueriesInselect, d'où, et d'orderByClauses, permettant à la FlexibledataRetrievalwithoutrawsql; 1.Useesectsub () ToaddCompuledColumns likepostcountperUser; 2.Usefromsub () OrclosionInfrom () totaleaTSubQueryArableforgouredData;
