Enregistrer un mandat pour les futurs paiements PayToSur invitation uniquement
Comment collecter un paiement PayTo et autoriser de futurs paiements.
PayTo permet aux clients australiens d’authentifier les accords de paiements PayTo ponctuels et récurrents dans leur application bancaire. Pour payer avec PayTo, les clients reçoivent une notification d’accord en attente, donnent leur autorisation après lecture des termes de l’accord, puis retournent à votre application, où vous recevez une notification différée de l’échec ou de la réussite du paiement.
La configuration d’un contrat PayTo pour les paiements futurs vous permet d’encaisser les futurs paiement récurrents sans avoir à demander à nouveau l’autorisation du client. Les clients peuvent consulter, gérer, suspendre et annuler leurs contrats PayTo dans leurs applications bancaires.
Mise en garde
Stripe ne prend pas en charge la modification ou la suspension des accords PayTo par les clients. Si un client tente de suspendre ou de modifier un accord, nous annulons cet accord et vous envoyons un webhook mandate.
. Après réception du webhook, vous pouvez contacter votre client pour savoir pourquoi il a modifié son accord, ainsi que pour en configurer un nouveau.
Afin d’accepter les paiements PayTo, créez un objet PaymentIntent pour suivre un paiement, collecter les informations de paiement, puis soumettre le paiement à Stripe pour traitement. Stripe utilise le PaymentIntent pour suivre et gérer tous les états du paiement jusqu’à ce qu’il aboutisse. Utilisez l’ID du Mandat collecté à partir de votre PaymentIntent PayTo initial pour créer des paiements ultérieurs.
Mise en garde
Stripe propose automatiquement à vos clients des options de moyens de paiement selon leur devise, les restrictions sur les moyens de paiement et d’autres paramètres. Nous vous recommandons de configurer vos moyens de paiement à partir du Dashboard Stripe en suivant les instructions indiquées dans Accepter un paiement.
If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide. Otherwise, update your integration to configure payment methods in the Dashboard.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. S’inscrire.
Pour accéder à l’API Stripe depuis votre application, utilisez nos bibliothèques officielles :
Créer un objet CustomerCôté serveur
Créez un objet Customer dès qu’un client crée un compte auprès de votre entreprise et associez-le à votre représentation interne de son compte. Vous pourrez ainsi récupérer et utiliser ultérieurement les informations enregistrées sur son moyen de paiement.
Créer un PaymentIntentCôté serveur
Créez un PaymentIntent sur votre serveur et précisez le montant à encaisser et la devise dans les paramètres amount
et aud
, l’ID du client, et le paramètre off_
(hors session) comme argument pour la configuration de l’utilisation future. Le montant minimal de paiement est de 0,50 AUD, et PayTo ne prend pas en charge d’autres devises. Si vous avez déjà une intégration API Payment Intents, ajoutez payto
à la liste des types de moyens de paiement.
Vous pouvez indiquer les conditions de l’accord que vous souhaitez que votre client accepte dans les options du moyen de paiement PayTo.
Erreur fréquente
Le montant (amount
) des options de moyen de paiement doit correspondre au champ amount
du PaymentIntent, sauf si vous définissez l’attribut amount_
sur maximum
. Dans ce cas, vous pouvez définir une valeur de moyens de paiement supérieure au PaymentIntent.
L’exemple de code suivant indique un montant de PaymentIntent de 10 AUD, et un montant de 1500 AUD pour les options de moyen de paiement, car le type de montant amount_
est maximum
.
Stripe prend en charge différents types d’accords, avec des contrôles du montant, de la durée, de la cadence et de l’objet de l’accord. Indiquez les conditions de l’accord qui correspondent précisément à vos besoins. Étant donné que vos clients voient ces conditions au moment de l’autorisation, les détailler peut améliorer votre taux de conversion.
Bêta
L’objet de l’accord (purpose
) par défaut est la vente au détail (retail
). Remplacez ce champ par l’une des valeurs valides si retail
ne correspond pas à l’objet de l’accord.
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 paiement et envoyer le 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.
Utilisez stripe.confirmPayment pour finaliser le paiement à l’aide des informations du composant Payment Element. Cela envoie une demande d’autorisation au client.
Note
L’exécution de la méthode stripe.
peut prendre plusieurs secondes, le temps que le client autorise le paiement. Pendant ce temps, bloquez le renvoi de votre formulaire et affichez un indicateur d’attente. Si vous recevez une erreur, montrez-la au client, réactivez le formulaire et masquez l’indicateur d’attente.
Débiter ultérieurement le moyen de paiement PayTo
Lorsque vous devez facturer à nouveau votre client, créez un nouveau PaymentIntent. Pour trouver l’ID du mandat, l’ID du client et l’ID du moyen de paiement, récupérez le PaymentIntent précédent et développez le champ latest_
.
Consultez les ID voulus dans la réponse ci-dessous.
{ // ... "customer": "cus_PW6rQWRGAaBD7z", // <---- Here's the customer "latest_charge": { "payment_method": "pm_1Ok4l9A8DuEjWaGwhB4SGrWh", // <---- Here's the payment method "payment_method_details": { "payto": { "bsb_number": null, "last4": null, "mandate": "mandate_1Ok4lVA8DuEjWaGwu0uTwI94", // <----- Here's the mandate "pay_id": "jenny@example.com" }, "type": "payto" }, }, "payment_method_types": [ "payto" ], // ... }
Créez un PaymentIntent en indiquant l’ID du moyen de paiement, l’ID du mandat et l’ID du client.
Tester votre intégration
Testez votre intégration PayTo avec vos clés API de test en utilisant les différents PayID de test et les coordonnées bancaires ci-dessous. Chaque combinaison donne lieu à un scénario différent auquel votre intégration pourrait être confrontée en mode production.