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.
Nous vous recommandons d’utiliser le composant Mobile Payment Element, un formulaire de paiement intégrable, pour ajouter Swish (et d’autres moyens de paiement) à votre intégration le plus facilement possible.
Ce guide explique comment accepter les paiements Swish depuis votre application mobile native à l’aide de votre propre formulaire de paiement personnalisé.
Si vous acceptez Swish depuis votre application mobile d’origine, vos clients sont redirigés vers l’application mobile Swish pour authentifier la transaction. Le paiement est authentifié lors de la redirection. L’achat ne nécessite aucune action supplémentaire dans l’application mobile Swish et le client est redirigé vers votre site.
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 un PaymentIntentCôté serveurCôté client
Côté serveur
Un PaymentIntent est un objet qui représente votre intention de collecter un paiement auprès d’un client et qui suit le cycle de vie du processus de paiement à chaque étape.
Pour créer et confirmer un PaymentIntent
sur votre serveur :
- Indiquez le montant à encaisser et la devise.
- Ajoutez
swish
à la liste des types de moyens de paiement pour votrePaymentIntent
. Assurez-vous que Swish est activé dans le Dashboard. - Définissez
payment_
surmethod_ data[type] swish
pour créer un PaymentMethod et l’utiliser immédiatement avec ce PaymentIntent.
Le PaymentIntent renvoyé contient la clé secrète du client, que vous utiliserez pour confirmer le PaymentIntent. Renvoyez cette clé secrète côté client pour permettre son utilisation à l’étape suivante.
Côté client
Côté client, demandez un PaymentIntent auprès de votre serveur et sauvegardez la clé secrète du client qu’il contient.
Envoyer le paiement à StripeCôté client
Lorsqu’un client appuie sur le bouton de paiement avec Swish, confirmez le PaymentIntent
pour finaliser le paiement. Configurez un objet STPPaymentIntentParams
avec la clé secrète du client du PaymentIntent
.
La clé secrète est différente de vos clés API qui servent à authentifier les requêtes de l’API Stripe. Elle doit être utilisée avec prudence, car elle peut servir à réaliser le paiement. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne la dévoilez à personne d’autre que votre client.
Configurer une URL de redirection
Le SDK iOS présente une vue Web dans votre application afin d’effectuer le paiement Swish. Si vous souhaitez qu’une fois l’authentification effectuée, la vue Web disparaisse automatiquement, sans que votre client ait à la fermer, vous pouvez paramétrer une URL personnalisée ou un lien universel, puis configurer votre délégation d’application de façon à transférer l’URL au SDK.
Transmettez l’URL en tant que return_
lorsque vous confirmez le PaymentIntent. Une fois l’authentification effectuée sur la vue Web, Stripe redirige l’utilisateur vers la return_
.
Confirmer le paiement Swish
Finalisez le paiement en appelant STPPaymentHandler confirmPayment
. Une vue Web s’affiche pour permettre au client d’effectuer le paiement avec Swish. Le bloc de finalisation est ensuite appelé avec le résultat du paiement.
É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_
.