Developers API & Widget
API Reference
CA

OAuth

Configura el flux OAuth

L'usuari s'autentica a Wealth Reader, torna al teu redirect_uri amb un code , i tu el bescanvies pel mateix JSON que el 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 Interfície iframe en canvi.

Fast Track

  1. Autoritza el domini amb access_type=oauth.
  2. Genera nonce, state i code_verifier. Calcula challenge_code. Codifica wr_conf en hexadecimal. Desa nonce i code_verifier.
  3. Redirigeix l'usuari a https://oauth.wealthreader.com/oauth2/ amb aquests paràmetres.
  4. Rep una petició GET a la teva redirect_uri amb nonce i code.
  5. Fes- POST https://oauth.wealthreader.com/token/ i aconsegueix el payload al banc.

1. Autoritzar el domini

La domain hauria de ser la mateixa URL que utilitzaràs com a redirect_uri i com a 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 la Àrea de Client triant integració OAuth.

2. Generar els valors del repte

Genera tres cadenes aleatòries de 41 caràcters alfanumèrics de text (A-Za-z0-9) i converteix-les a hexadecimals (bin2hex). Cada valor hexadecimal té 82 caràcters de text.

Valor Com s'obté S'envia a
redirect_uri La teva URL de retorn, la mateixa que vas autoritzar consulta i POST /token/
nonce 41 caràcters → hexadecimal consulta; torna a la GET
state 41 caràcters → hexadecimal Consulta
code_verifier 41 caràcters → hexadecimal només POST /token/ (no a la consulta)
challenge_code code_verifier SHA-256 (resum hexadecimal) consulta, com challenge_code
wr_conf → Configuració del selector hexadecimal JSON Consulta

wr_conf admet els mateixos camps que el Interfície iframe. Exemple abans de passar a hexadecimal:

{
  "operation_id": "op_a1b2c3d4e5f6",
  "entities_to_display": [],
  "wait_full_response": true
}

Hexadecimal d'aquest JSON:

7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d

Convertir wr_conf a hexadecimal no genera nonce, state ni code_verifier. Aquests tres valors es creen per separat i els has de mantenir (associats a la nonce) fins a la 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. Redirigir l'usuari

Construeix la consulta i redirigeix. Exemple amb valors consistents entre si:

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 a la teva redirect_uri.

4. Rep el GET en redirect_uri

https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a

Utilitza el nonce per recuperar el code_verifier que has guardat al pas 2. Si el nonce no és el que vas emetre, descarta la sol·licitud.

5. Completar 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 que té el GET
code_verifier L'hexadecimal que vas generar al pas 2

Si els valors coincideixen, la resposta és el JSON del banc (el mateix esquema que el callback de l'iframe): success, payload i statistics (operation_id, token, code).

Guarda token i code si penses refrescar amb POST https://api.wealthreader.com/entities/més endavant.

Codi d'exemple

Hi ha un exemple en Java (JBang/Java 17) que genera els paràmetres i completa el repte:

Descarrega una mostra de Java (ZIP)

Si necessites el mateix flux en un altre idioma, escriu-nos a support@wealthreader.com.

Última actualització