OAuth
Configurar el flux OAuth
L'usuari s'autentica a Wealth Reader, torna a tu redirect_uri amb un code i tu el bescanvies pel mateix JSON que la callback iframe.
Utilitza aquest camí si no pots incrustar l'iframe (aplicació nativa o un flux de redirecció). Si la teva aplicació web pot muntar un iframe, utilitza [frontend iframe]](/docs/ca/integracio-iframe-1-de-2-frontend/) en comptes d'això.
Via ràpida
- Autoritzar el domini amb
access_type=oauth. - Genera
nonce,stateicode_verifier. Calculachallenge_code. Codificawr_confen hexadecimal. Guardanonceicode_verifier. - Redirigir l'usuari a
https://oauth.wealthreader.com/oauth2/amb aquests paràmetres. - Accepta
GETla tevaredirect_uriconvenciónonceicode. - Fes-ho
POSTihttps://oauth.wealthreader.com/token/aconsegueix la càrrega útil del banc.
1. Autoritza el domini
Ha domain de ser la mateixa URL que utilitzaràs com redirect_uri i com 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'
També pots registrar el domini des de l'àrea del client ] triant la integració OAuth.
2. Generació dels valors del repte
Genera tres cadenes aleatòries de 41 caràcters alfanumèrics (A-Za-z0-9) i converteix-les a hexadecimals (bin2hex). Cada valor hexadecimal té 82 caràcters.
| Valor | Com aconseguir-lo | Vaixells a |
|---|---|---|
redirect_uri |
La teva URL de retorn, la mateixa que vas autoritzar | consulta i POST /token/ |
nonce |
41 caràcters → hexàgon | consulta; de tornada a la GET |
state |
41 caràcters → hexàgon | consulta |
code_verifier |
41 caràcters → hex | Solo POST /token/ (no a la consulta) |
challenge_code |
SHA-256 de code_verifier (hex digest) |
consulta, com challenge_code |
wr_conf |
Configuració del selector hexadecimal → JSON | consulta |
wr_conf Admet els mateixos camps que el frontend iframe. Exemple abans de canviar a hexadecimal:
{
"operation_id": "op_a1b2c3d4e5f6",
"entities_to_display": [],
"wait_full_response": true
}
Hexadecimal d'aquest JSON:
7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d
Convertir wr_conf a no hexadecimal genera nonce, state ni code_verifier. Aquests tres valors es creen per separat i has de persistir-los (associats amb el nonce) fins que el POST /token/.
Exemple en PHP, equivalent al que fem servir internament:
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. Redirigeix l'usuari
Construeix la consulta i redirigeix. Exemple amb valors consistents:
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'usuari veu el selector bancari, s'autentica i, quan acaba, Wealth Reader el retorna al vostre redirect_uri.
4. Rep el GET in redirect_uri
https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a
Fes servir el per nonce recuperar el code_verifier que vas guardar al pas 2. Si no és nonce l'emissor, desestima la sol·licitud.
5. Completa el repte
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'
| Camp | Valor | |
|---|---|---|
grant_type authorization_code |
||
redirect_uri |
Exactament igual que el pas 3 | |
code |
El de | GET |
code_verifier |
L'hexadecimal que vas generar al pas 2 |
Si els valors coincideixen, la resposta és el JSON del banc (mateix esquema que el callback iframe]: success, payload i statistics (operation_id, token, code).
Desa token i code si més endavant refrescaràs amb POST https://api.wealthreader.com/entities/.
Codi d'exemple
Hi ha un exemple en Java (JBang/Java 17) que genera els paràmetres i completa el repte:
[Descarrega exemple de Java (ZIP)]](https://drive.google.com/file/d/1nyWASQVkhFHAgTTeqq0HJe70fucg8D2E/view?usp=sharing)
Si necessites el mateix flux en un altre idioma, escriu-nos a support@wealthreader.com. /support@wealthreader.com