Paiements Cash App Pay
Ajoutez la prise en charge de Cash App Pay à votre intégration.
Ce guide vous montre comment intégrer un formulaire de paiement Stripe personnalisé à votre site Web ou application à l’aide de Payment Element. Le Payment Element permet de prendre en charge automatiquement Cash App Pay et d’autres moyens de paiement. Pour les configurations et personnalisations avancées, consultez le guide d’intégration consacré à l’acceptation des paiements.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer un PaymentIntentCôté serveur
Pour représenter votre intention d’encaisser le paiement d’un client, Stripe utilise un objet PaymentIntent qui suit vos tentatives de débit et les changements d’état du paiement tout au long du processus.
Récupérer la clé secrète du client
Le PaymentIntent 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.
Collecter les informations de paiementCôté client
Collectez les informations de paiement du client avec le Payment Element. Le Payment Element est un composant d’interface utilisateur préconfiguré qui simplifie la collecte des informations pour de nombreux moyens de paiement.
Le Payment Element contient un iframe qui envoie les informations de paiement à Stripe de manière sécurisée via une connexion HTTPS. Évitez de placer le Payment Element dans un autre iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour la confirmation du paiement.
Pour que votre intégration fonctionne, l’adresse de la page de paiement doit commencer par https://
et non par http://
. Vous pouvez tester votre intégration sans utiliser le protocole HTTPS, mais n’oubliez pas de l’activer lorsque vous souhaitez commencer à accepter des paiements réels.
Soumettre le paiement à StripeCôté client
Utilisez stripe.confirmPayment pour effectuer le paiement à l’aide des informations du composant Payment Element. Ajoutez un paramètre return_url à cette fonction pour indiquer la page vers laquelle Stripe doit rediriger l’utilisateur à l’issue du paiement. Votre utilisateur peut être redirigé en premier lieu vers un site intermédiaire, comme une page d’autorisation bancaire, avant d’être redirigé vers la page spécifiée par le paramètre return_
. L’utilisateur sera immédiatement redirigé vers la page return_
après un paiement réussi par carte.
Veillez à ce que le paramètre return_
corresponde à une page de votre site web qui indique l’état du paiement. Lorsque Stripe redirige le client vers la page return_
, nous fournissons les paramètres de requête d’URL suivants :
Paramètre | Description |
---|---|
payment_ | L’identifiant unique du PaymentIntent . |
payment_ | La clé secrète du client de l’objet PaymentIntent . |
Mise en garde
Si vous disposez d’outils qui assurent le suivi de la session navigateur du client, vous devrez peut-être ajouter le domaine stripe.
à la liste d’exclusion des sites référents. Les redirections font que certains outils créent de nouvelles sessions, ce qui empêche le suivi de la session dans son ensemble.
Utilisez l’un des paramètres de requête pour récupérer le PaymentIntent. Consultez l’état du PaymentIntent pour déterminer les informations à présenter à vos clients. Vous pouvez également ajouter vos propres paramètres de requête lorsque vous ajoutez l’URL return_
; ils seront conservés tout au long du processus de redirection.
Rediriger et authentifier les transactions
Les acheteurs peuvent authentifier les transactions Cash App Pay avec des applications mobiles ou de bureau. Le client utilisé par l’acheteur détermine la méthode d’authentification après l’appel de confirmPayment
.
FacultatifAutorisation et capture distinctes
Vous pouvez séparer l’autorisation de la capture pour créer un paiement maintenant, mais capturer les fonds ultérieurement. Stripe annule le PaymentIntent et envoie un événement payment_intent.canceled si le paiement n’est pas capturé dans un délai de 7 jours.
Si vous savez que vous ne pouvez pas capturer le paiement, nous vous recommandons d’annuler le PaymentIntent plutôt que d’attendre la fin de la période de 7 jours.
Indiquez à Stripe d’autoriser uniquement le montant 
Pour indiquer que vous souhaitez séparer l’autorisation de la capture, définissez capture_method sur manual
lors de la création du PaymentIntent. Ce paramètre indique à Stripe d’autoriser uniquement le montant sur le compte Cash App Pay du client.
Capturez les fonds 
Une fois l’autorisation réussie, l’état du PaymentIntent passe à requires_
. Pour capturer les fonds autorisés, faites une demande de capture du PaymentIntent.
Le montant total autorisé est capturé par défaut. Vous pouvez également spécifier le montant à capturer amount_
, qui peut être inférieur ou égal au total.
Facultatif Annuler l’autorisation
Si vous devez annuler une autorisation, vous pouvez annuler le PaymentIntent.
FacultatifGérer les événements post-paiement
Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez le Dashboard, un webhook personnalisé ou une solution partenaire pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.
Plutôt que d’attendre un rappel de votre client, écoutez ces événements. En effet, côté client, l’acheteur pourrait fermer la fenêtre de son navigateur ou quitter l’application avant l’exécution du rappel. Des personnes malveillantes peuvent en profiter pour manipuler la réponse. Si vous configurez votre intégration de manière à écouter les événements asynchrones, cela vous permettra également d’accepter de nouveaux moyens de paiement plus facilement à l’avenir. Apprenez-en davantage sur les différences entre les différents moyens de paiement pris en charge.
Gérer les événements manuellement dans le Dashboard
Utilisez le Dashboard pour afficher vos paiements de test dans le Dashboard, envoyer des reçus par e-mail, gérer les virements ou réessayer les paiements échoués.
Créer un webhook personnalisé
Créez un gestionnaire de webhook personnalisé pour écouter les événements et créer des tunnels de paiement asynchrones personnalisés. Testez et déboguez votre intégration de webhook localement avec la CLI Stripe.
Intégrer une application prédéfinie
Gérez les événements commerciaux courants, tels que l’automatisation ou le marketing et les ventes, en intégrant une application partenaire.
Échecs de paiement
Cash App Pay utilise plusieurs données pour décider du refus d’une transaction (par exemple, si son modèle d’IA a détecté un risque élevé de fraude pour la transaction, ou si le client a révoqué votre autorisation de débit dans Cash App).
Dans ce cas, le PaymentMethod est détaché et le statut de l’objet PaymentIntent passe automatiquement à requires_
Hormis le refus d’un paiement, dans le cas d’un PaymentIntent Cash App Pay à l’état requires_
, les clients doivent effectuent le paiement sous 10 minutes une fois qu’ils ont été redirigés vers Cash App. En l’absence d’action sous 10 minutes, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_
.
Dans ce cas, le composant Payment Element affiche des messages d’erreur et demande à votre client de réessayer avec un autre moyen de paiement.
Codes d’erreur
Le tableau suivant détaille les codes d’erreur courants et les actions recommandées :
Code d’erreur | Action recommandée |
---|---|
payment_ | Saisissez la devise appropriée. Cash App Pay prend uniquement en charge l’usd . |
missing_ | Consultez le message d’erreur pour en savoir plus sur le paramètre requis. |
payment_ | Ce code peut apparaître dans le champ last_payment_error.code d’un PaymentIntent. Consultez le message d’erreur pour connaître la raison détaillée de l’échec et obtenir une suggestion de traitement de l’erreur. |
payment_ | Spécifiez une URL return_ lors de la confirmation d’un PaymentIntent avec Cash App Pay. |