Passer au contenu principal
Sur mobile, ouvrir l’URL de paiement dans le navigateur système fait quitter l’application et rend le retour utilisateur difficile à gérer. La WebView native maintient l’utilisateur dans l’app, permet de détecter automatiquement la fin du flux de paiement et de déclencher la vérification sans action supplémentaire de l’utilisateur.

WebView native vs navigateur externe

ApprocheRetour automatiqueUXRecommandé
WebView nativeOui — détection par URLFluide, reste dans l’app
SFSafariViewController / Chrome Custom TabsPartiel — deep link requisSort brièvement de l’appAcceptable
Navigateur systèmeNonQuitte l’app
SFSafariViewController (iOS) et Chrome Custom Tabs (Android) ne permettent pas d’intercepter les redirections vers vos URLs de retour. Ils ne conviennent pas pour ce cas d’usage sans mettre en place un deep link.

React Native

Dépendance : react-native-webview
React Native
Remplacez https://monapp.com/paiement/succes et https://monapp.com/paiement/annule par vos return_url et cancel_url exactes passées à la création de la facture.

Flutter

Dépendance : webview_flutter
pubspec.yaml
Flutter

iOS (Swift / WKWebView)

iOS (Swift)
Présenter le ViewController :
iOS (Swift)

Android (Kotlin / WebView)

Android (Kotlin)
Démarrer l’Activity et récupérer le résultat :
Android (Kotlin)
N’oubliez pas de déclarer PaiementActivity dans votre AndroidManifest.xml :
AndroidManifest.xml

Après la détection du retour

Le flux est identique quelle que soit la plateforme :
1

Fermer la WebView

Dépiler ou dismisser le composant WebView pour revenir à l’écran précédent.
2

Afficher un écran de vérification

Montrez un indicateur de chargement — « Vérification du paiement en cours… » — le temps d’interroger votre backend.
3

Appeler votre backend

Votre backend appelle l’endpoint confirm avec le token stocké à la création de la facture.
4

Afficher le résultat

Selon le status retourné : confirmez la commande (completed), informez l’utilisateur (notcompleted) ou invitez-le à patienter (pending).
La détection de return_url est un signal d’interface, pas une preuve de paiement. Un utilisateur peut naviguer manuellement vers cette URL. Confirmez toujours le paiement côté serveur avant d’honorer la commande.

Pages associées