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
Pour collecter les informations du moyen de paiement et débiter immédiatement le moyen de paiement enregistré, utilisez l’API Payment Intents.
Pour créer des paiements récurrents après avoir enregistré un moyen de paiement dans Checkout, consultez Configurer un abonnement avec Cash App Pay pour en savoir plus.
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.
Incluez le code suivant sur votre serveur pour créer un nouveau 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’utiliser le texte suivant pour 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.
Utilisez 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 :
Enregistrement des moyens de paiement de vos clients afin que leurs achats ultérieurs ne nécessitent pas d’authentification
Mise en place d’une période d’essai gratuit pour un abonnement
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_session.
Le SetupIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.
Récupérez la clé secrète du client à partir d’un endpoint sur votre serveur, à l’aide de la fonction fetch du navigateur. Cette approche est recommandée si votre côté client est une application d’une seule page, en particulier si elle repose sur un framework front-end moderne tel que React. Créez l’endpoint de serveur qui gère la clé secrète du client :
get '/secret'do
intent =# ... Create or retrieve the SetupIntent{client_secret: intent.client_secret}.to_json
end
Récupérez ensuite la clé secrète du client à l’aide JavaScript côté client :
(async()=>{const response =awaitfetch('/secret');const{client_secret: clientSecret}=await response.json();// Render the form using the clientSecret})();
Ensuite, enregistrez Cash App Pay côté client avec Stripe.js.
Intégrez le script Stripe.js à votre page Checkout en l’ajoutant entre les balises head de votre fichier HTML.
Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement :
client.js
// Set your publishable key. Remember to change this to your live publishable key in production!// See your keys here: https://dashboard.stripe.com/apikeysconst stripe =Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);
Utilisez stripe.confirmCashappSetup pour confirmer le SetupIntent côté client, avec un return_url et un mandate_data facultatif. Utilisez le return_url pour rediriger les clients vers une page spécifique une fois le SetupIntent réussi.
client.js
const form = document.getElementById('setup-form');
form.addEventListener('submit',function(event){
event.preventDefault();// Set the clientSecret here
stripe.confirmCashappSetup(
clientSecret,{
payment_method:{
type:'cashapp',},
return_url:'https://www.example.com/checkout/done',},);});
Les clients peuvent authentifier Cash App Pay avec des applications mobiles ou de bureau. Après avoir appelé confirmCashappSetup, le client utilisé détermine la méthode d’authentification, telle que la redirection pour les appareils mobiles ou le code QR pour les ordinateurs de bureau. La réponse d’authentification inclut également un ID de moyen de paiement que vous devez utiliser à l’étape suivante pour créer un PaymentIntent.
Après avoir appelé confirmCashappSetup, Stripe redirige vos clients vers l’application Cash App pour l’autorisation. Une fois le paiement autorisé, Stripe l’envoie à la return_url. Stripe ajoute setup_intent, setup_intent_client_secret, redirect_pm_type et redirect_status comme paramètres de requête d’URL, ainsi que tous les paramètres de requête existants dans la return_url.
Une session d’authentification expire au bout de 10 minutes, puis l’état du SetupIntent repasse à require_payment_method. Après le changement d’état, le client voit s’afficher une erreur d’autorisation et doit recommencer le processus de paiement.
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_session 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.