Paiements SwishSur invitation uniquement
Comment accepter Swish, un moyen de paiement populaire en Suède.
Swish est un moyen de paiement à usage unique utilisé en Suède. Il permet aux clients d’authentifier et approuver leurs paiements via l’application mobile Swish et l’application mobile suédoise BankID.
Vous recevez une notification immédiate indiquant si le paiement a abouti ou échoué.
Déclarations obligatoires
Pour respecter les règles de Swish, vous devez afficher le texte suivant dans votre tunnel de paiement à l’écran avant que le client n’autorise le paiement Swish :
- Pour les localisations en anglais : « Stripe Technology Europe Limited (“Stripe”) has acquired the claim for payment. Therefore your payment will be made to Stripe. »
- Pour les localisations en suédois : « Stripe Technology Europe Limited (“Stripe”) har övertagit fordran på betalning. Din betalning görs därför till Stripe ».
- Pour les autres langues, une traduction équivalente du texte ci-dessus.
Si vous intégrez Swish via un formulaire de paiement ou un composant d’interface utilisateur hébergé par Stripe, tel que Checkout ou le Payment Element, Stripe affiche cet avis pour vous.
Configurer StripeCôté serveur
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer un PaymentIntentCôté serveur
Un PaymentIntent est un objet qui représente votre intention d’encaisser un paiement émis par un client et suit le cycle de vie du processus de paiement étape par étape. Pour commencer, créez un PaymentIntent
sur votre serveur et précisez le montant à encaisser et la devise. Si vous avez déjà créé une intégration à l’aide de l’API Payment Intents, ajoutez swish
à la liste des types de moyens de paiement pour votre PaymentIntent
.
Remarque
Vous pouvez définir la référence de la commande à présenter à votre client dans l’application Swish.
Réponse
{ "id": "pi_12345", "amount": 6000, "client_secret": "pi_12345_secret_abcdef", "currency": "sek", "payment_method": "pm_12345", "payment_method_types": [ "swish" ], "payment_method_options": { "swish": { "reference": "Order-123", }, }, "status": "requires_confirmation" }
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.
Confirmer le PaymentIntent
Utilisez l’id du PaymentIntent de l’étape 2 pour confirmer le PaymentIntent. Cette action indique que le client souhaite payer avec le PaymentMethod spécifié. Une fois le PaymentIntent confirmé, le paiement est déclenché. Le paramètre return_url détermine la page vers laquelle Stripe doit rediriger l’utilisateur après avoir procédé au paiement.
Initiez le paiement Swish en confirmant le PaymentIntent. Incluez une return_
vers laquelle rediriger votre client une fois le paiement effectué.
Réponse
{ "id": "pi_12345", "amount": 6000, "currency": "sek", "payment_method": "pm_12345", "next_action": { "swish_handle_redirect_or_display_qr_code": { "hosted_instructions_url": "https://stripe.com/hiu-pi_123", "qr_code": { "data": "abc123", "image_url_png": "https://qr.stripe.com/qr_123.png", "image_url_svg": "https://qr.stripe.com/qr_123.svg" } }, "type": "swish_handle_redirect_or_display_qr_code" }, "payment_method_types": [ "swish" ], "payment_method_options": { "swish": { "reference": "Order-123", }, }, "status": "requires_action" }
Pour autoriser le paiement, redirigez votre client vers l’URL indiquée dans le champ next_action[swish_handle_redirect_or_display_qr_code][hosted_instructions_url] ou chargez cette page dans un iframe. Cette page présente à la fois le code QR et un bouton de redirection vers l’application Swish.
Les clients utilisant un ordinateur de bureau peuvent scanner le code QR à l’aide de l’application Swish, puis autoriser le paiement.
Les clients utilisant un appareil mobile peuvent cliquer sur un bouton qui les redirige vers l’application Swish, où ils peuvent autoriser le paiement.
Remarque
Votre client dispose de 3 minutes pour autoriser le paiement dans l’application Swish, après quoi le paiement échoue et le PaymentIntent bascule sur requires_
.
Traiter la commandeCôté serveur
Utilisez une méthode telle que les webhooks pour gérer le traitement de la commande. Lorsque votre client effectue le paiement, l’état du PaymentIntent
passe à succeeded
et le PaymentIntent envoie l’événement webhook payment_intent.succeeded. À défaut de paiement, le PaymentIntent
envoie l’événement webhook payment_intent.payment_failed et repasse à l’état requires_
.
Échecs de paiement
Swish utilise plusieurs données pour décider du refus d’une transaction (par exemple, s’il n’y a pas assez de fonds sur le compte bancaire du client ou si ce dernier a cliqué sur Annuler dans l’application).
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 Swish à l’état requires_
, les clients doivent effectuer le paiement sous 3 minutes. En l’absence d’action sous 3 minutes, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_
.