Configurer les futurs paiements Cash App Pay
Découvrez comment enregistrer des informations Cash App Pay pour débiter vos clients ultérieurement.
Vous pouvez utiliser l’API Setup Intents pour recueillir à l’avance les informations du moyen de paiement, en vue d’un paiement dont la date et le montant seront déterminés ultérieurement. Ceci est utile pour :
- Enregistrer des moyens de paiement dans un portefeuille pour faciliter les futurs achats
- Encaisser des surtaxes après la fourniture d’un service
- Démarrer une période d’essai gratuit dans le cadre d’un abonnement
Ce guide explique comment enregistrer dans un premier temps les informations du moyen de paiement à l’aide de l’API Setup Intents, puis comment utiliser l’API Payment Intents pour débiter le moyen de paiement enregistré ultérieurement.
Configurer StripeCôté serveurCôté client
Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.
Côté serveur
Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API Stripe. Utilisez les bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :
Côté client
Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.
Remarque
Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.
Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.
Remarque
Utilisez vos clés de test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.
Créer ou récupérer un objet CustomerCôté serveur
Pour enregistrer un moyen de paiement Cash App Pay pour de futurs paiements, vous devez le rattacher à un objet Customer.
Créez un objet Customer lorsque votre client crée un compte auprès de votre entreprise. Associez l’ID de l’objet Customer à votre propre représentation interne d’un client. Vous pouvez également créer l’objet Customer juste avant d’enregistrer un moyen de paiement pour votre client pour ses paiements ultérieurs.
Ajoutez le code suivant à votre serveur pour créer un nouveau client.
Créer un SetupIntentCôté serveur
Un SetupIntent est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Créez un SetupIntent sur votre serveur avec payment_method_types défini sur cashapp
, spécifiez l’ID du client et configurez usage=off_session ou usage=on_
.
Présenter les conditions d'autorisation sur votre formulaire de paiementCôté client
Enregistrez les informations d’identification Cash App Pay de votre client ($Cashtag) pour débiter son compte lors de futurs paiements hors session. Votre formulaire de paiement personnalisé doit présenter un avis d’autorisation écrit avant la confirmation du PaymentIntent ou du SetupIntent.
Les conditions d’autorisation ne doivent être affichées que la première fois où vous enregistrez le $Cashtag d’un client.
Nous vous recommandons d’intégrer le texte suivant à votre formulaire de paiement personnalisé :
En continuant, vous autorisez Rocket Rides à débiter votre compte Cash App pour ce paiement et les paiements futurs, conformément aux conditions de Rocket Rides, jusqu’à la révocation de cette autorisation. Vous pouvez modifier cela à tout moment dans les paramètres de Cash App.
Soumettre le paiement à StripeCôté client
Récupérez la clé secrète du client auprès du SetupIntent que vous avez créé, puis appelez le STPPaymentHandler confirmSetupIntent. Une vue Web s’affiche pour permettre au client de finaliser le paiement dans Cash App. Une fois l’opération terminée, le bloc de finalisation est appelé avec le résultat du paiement.
Créer un PaymentIntent à l'aide d'un moyen de paiement enregistréCôté serveur
Après avoir créé un PaymentMethod, vous pouvez accepter les futurs paiements Cash App Pay en créant et en confirmant un PaymentIntent. Lors de la confirmation d’un PaymentIntent, utilisez le même ID de moyen de paiement que celui de l’objet SetupIntent ou PaymentIntent précédent. La valeur off_
doit également être définie sur true si le client ne se trouve pas dans un flux de paiement pour ce PaymentIntent.
Gérer la révocation des moyens de paiement réutilisables
Il existe deux manières de révoquer un moyen de paiement réutilisable :
- Un client peut désactiver un moyen de paiement réutilisable dans l’application mobile Cash App. Dans ce cas, Stripe envoie un événement mandate.updated. Abonnez-vous aux événements webhook et appelez detach PaymentMethod pour le désactiver.
- Un client peut également désactiver un moyen de paiement réutilisable sur votre interface utilisateur, si elle est prise en charge. Dans ce cas, votre serveur peut appeler detach PaymentMethod pour le désactiver.
Dans les deux cas, une fois que vous avez appelé le detach PaymentMethod, un événement payment_method.detached vous est envoyé.