OAuth
Installez le flux OAuth
L’utilisateur s’authentifie à Wealth Reader, retourne à votre redirect_uri avec un code , et vous l’échangez pour le même JSON que le rappel iframe.
Utilisez ce chemin si vous ne pouvez pas intégrer l’iframe (application native ou flux de redirection). Si votre application web peut monter un iframe, utilisez Frontend iframe à la place.
Parcours rapide
- Autorisez le domaine avec
access_type=oauth. - Génère
nonce,stateetcode_verifier. Calculechallenge_code. Encodewr_confen hexadécimal. Conserveznonceetcode_verifier. - Redirigez l’utilisateur vers
https://oauth.wealthreader.com/oauth2/avec ces paramètres. - Recevez un
GETsur votreredirect_uriavecnonceetcode. - Faites
POSTpourhttps://oauth.wealthreader.com/token/et récupérez la charge utile de la banque.
1. Autoriser le domaine
Le domain doit être la même URL que vous utiliserez comme redirect_uri et comme url_callback.
curl --location 'https://api.wealthreader.com/domains/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'method=add' \
--data-urlencode 'api_key=TU_API_KEY' \
--data-urlencode 'domain=https://example.com/oauth/success.php' \
--data-urlencode 'url_callback=https://example.com/oauth/success.php' \
--data-urlencode 'access_type=oauth' \
--data-urlencode 'tokenize=1'
Vous pouvez également enregistrer le domaine depuis le Zone clientèle en choisissant l’intégration OAuth.
2. Générer les valeurs du défi
Génère trois chaînes aléatoires de 41 caractères alphanumériques (A-Za-z0-9) et les convertir en hexadécimales (bin2hex). Chaque valeur hexadécimale fait 82 caractères.
| Valeur | Comment il est obtenu | Envoyé dans |
|---|---|---|
redirect_uri |
Votre URL de retour, la même que celle que vous avez autorisée | requête et POST /token/ |
nonce |
41 caractères → hexadécimal | requête ; revenez dans le GET |
state |
41 caractères → hexadécimal | Requête |
code_verifier |
41 caractères → hexadécimal | seulement POST /token/ (pas dans la requête) |
challenge_code |
code_verifier SHA-256 (empreinte hexadécimale) |
Requête, comme challenge_code |
wr_conf |
→ Configuration du Sélecteur Hexadécimal JSON | Requête |
wr_conf supporte les mêmes champs que le Frontend iframe. Exemple Avant Du passage à l’hexadécimal :
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Hexadécimal de ce JSON:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Convertir wr_conf en hexadécimal ne génère pas nonce, state ou code_verifier. Ces trois valeurs sont créées séparément et vous devez les faire persister (associées à la nonce) jusqu’à l’appel POST /token/.
Exemple en PHP, équivalent à celui que nous utilisons en interne :
function randomAlnum($length)
{
$alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$value = '';
for ($i = 0; $i < $length; $i++) {
$value .= $alphabet[random_int(0, strlen($alphabet) - 1)];
}
return $value;
}
$nonce = bin2hex(randomAlnum(41));
$state = bin2hex(randomAlnum(41));
$code_verifier = bin2hex(randomAlnum(41));
$challenge_code = hash('sha256', $code_verifier);
$wr_conf = bin2hex(json_encode([
'operation_id' => 'op_a1b2c3d4e5f6',
'entities_to_display' => [],
'wait_full_response' => true,
]));
3. Rediriger l’utilisateur
Construisez la requête et effectuez la redirection. Exemple avec des valeurs cohérentes :
https://oauth.wealthreader.com/oauth2/?challenge_code=c725133644f703a5f069a09583fa981eb5b8820071a4450f8d47ff8b1c6a879a
&code_challenge_method=S256
&redirect_uri=https://example.com/oauth/success.php
&response_type=code
&state=73684148464b3778795873626d724e62734749724336685a7a687854336c317934524f516831316a45
&nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&wr_conf=7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
L’utilisateur consulte le sélecteur bancaire, s’authentifie et, une fois terminé, Wealth Reader le renvoie à votre redirect_uri.
4. Recevoir le GET en redirect_uri
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a
Utilisez le nonce pour récupérer le code_verifier que vous avez sauvegardé à l’étape 2. Si le nonce n’est pas celui que vous avez émis, rejetez la demande.
5. Terminer le défi
curl --location --request POST 'https://oauth.wealthreader.com/token/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=https://example.com/oauth/success.php' \
--data-urlencode 'code=1234567890abcdef1234567890abcdef1234567890a' \
--data-urlencode 'code_verifier=6634413364504337675230375a624671644f644d42414241303037737374684f494877477649723433'
| Champ | Valeur |
|---|---|
grant_type |
authorization_code |
redirect_uri |
Exactement comme l’étape 3 |
code |
Celui avec le GET |
code_verifier |
La valeur hexadécimale que vous avez générée à l’étape 2 |
Si les valeurs correspondent, la réponse est le JSON de la banque (même schéma que le Rappel iframe: success, payload et statistics (operation_id, token, code).
Sauvegardez token et code si vous comptez rafraîchir avec POST https://api.wealthreader.com/entities/ plus tard.
Code exemple
Il existe un exemple en Java (JBang/Java 17) qui génère les paramètres et complète le défi :
Télécharger un exemple Java (ZIP)
Si vous avez besoin du même flux dans une autre langue, écrivez-nous à l’adresse suivante support@wealthreader.com.