Int�gration API Sumup dans flutter (workflow d'authentification)
Je suis en train d'essayer de cr�er une application qui int�gre Sumup et notamment la connexion avec un terminal de paiement.
J'utilise le plugin flutter sumup (https://pub.dev/packages/sumup) que j'ai modifi� notamment au niveau du login, pour essayer d'int�grer une connexion transparente pour l'utilisateur.
En utilisant cette documentation -> https://developer.sumup.com/docs/authorization/ , j'ai compris que l'utilisateur (qui est le vendeur) devrait se loguer une fois au d�but, puis je pourrais utiliser le refresh_token pour qu'il se logue ensuite sans rentrer � nouveau ses identifiants.
Je n'ai jamais mis en place de syst�me d'authentification dans mes applis flutter (qui sont tr�s basiques), et donc je n'arrive pas � comprendre le m�canisme, voici ce que je fais :
Code:
1 2 3 4 5 6 7 8
| http.Response response = await http.get(Uri.parse(
"https://api.sumup.com/authorize?response_type=code&client_id=" +
client_id +
"&redirect_uri=myredirecturi"));
if (response.statusCode == 200) {
String data = response.body;
print(data);
} |
Je m'attends � avoir un �cran de connexion normalement, pour que le vendeur se connecte et que je re�oive dans data mes code d'authentification. Cela me print �a :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| I/flutter ( 3950): <!doctype html>
I/flutter ( 3950): <html>
I/flutter ( 3950): <head>
I/flutter ( 3950): <title>SumUp OAuth</title>
I/flutter ( 3950): <meta name="viewport" content="width=device-width, maximum-scale=1">
I/flutter ( 3950): <link rel="icon" href="/favicon.png">
I/flutter ( 3950): </head>
I/flutter ( 3950): <body>
I/flutter ( 3950):
I/flutter ( 3950): <oauth></oauth>
I/flutter ( 3950):
I/flutter ( 3950):
I/flutter ( 3950): <script src="/gateway/oauth.js"></script>
I/flutter ( 3950): </body>
I/flutter ( 3950): </html> |
Je comprends que je dois afficher cette page d'authentification, j'ai donc essayer de passer par un plugin, mais cela m'am�ne sur la page api.sumup.com/authorize qui reste blanche.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| final callbackUrlScheme = 'myredirecturl';
final url = Uri.https('api.sumup.com', '/authorize', {
'response_type': 'code',
'client_id': client_id,
'redirect_uri': '$callbackUrlScheme:/',
});
final result = await FlutterWebAuth.authenticate(
url: url.toString(), callbackUrlScheme: callbackUrlScheme);
final code = Uri.parse(result).queryParameters['code'];
final response =
await http.post(Uri.parse('https://api.sumup.com/token'), body: {
'client_id': client_id,
'redirect_uri': '$callbackUrlScheme:/',
'grant_type': 'authorization_code',
'code': code,
});
final accessToken = jsonDecode(response.body)['access_token'] as String;
print(accessToken); |
Quelque chose m'�chappe, j'ai fais des recherches et suivi des tutos (notamment celui de Auth0) mais je n'arrive pas � comprendre comment l'appliquer pour mon cas.
Merci par avance de votre aide.