Developers API & Widget
API Reference
EL

OAuth

Ρύθμιση του OAuth ροής

Ο χρήστης πραγματοποιεί έλεγχο ταυτότητας για να Wealth Reader, επιστρέφει στο redirect_uri σας με ένα code και το εξαργυρώνετε για την ίδια JSON με το iframe callback .

Χρησιμοποιήστε αυτήν τη διαδρομή εάν δεν μπορείτε να ενσωματώσετε το iframe (εγγενής εφαρμογή ή ροή ανακατεύθυνσης). Εάν η εφαρμογή ιστού σας μπορεί να προσαρτήσει ένα iframe, χρησιμοποιήστε το Frontend iframe Αντ 'αυτού.

Γρήγορη διαδρομή

  1. Εξουσιοδοτήστε τον τομέα με access_type=oauth.
  2. Δημιουργεί nonce, state και code_verifier. Υπολογίζει challenge_code. Κωδικοποιεί wr_conf σε δεκαεξαδικό. Αποθηκεύει nonce και code_verifier.
  3. Ανακατευθύνετε τον χρήστη για να https://oauth.wealthreader.com/oauth2/ με αυτές τις παραμέτρους.
  4. Αποκτήστε GET στο redirect_uri σας με nonce και code.
  5. Κάντε POST https://oauth.wealthreader.com/token/ και πάρτε το payload από την τράπεζα.

1. Εξουσιοδοτήστε τον τομέα

Το domain θα πρέπει να είναι το ίδιο URL που θα χρησιμοποιήσετε ως redirect_uri και ως 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'

Μπορείτε επίσης να κατοχυρώσετε τον λογαριασμό τομέα από το Περιοχή πελατών επιλέγοντας ενσωμάτωση OAuth.

2. Δημιουργήστε τις αξίες της πρόκλησης

Δημιουργήστε τρεις τυχαίες συμβολοσειρές 41 αλφαριθμητικών χαρακτήρων κειμένου (A-Za-z0-9) και μετατρέψτε τις σε δεκαεξαδικές (bin2hex). Κάθε δεκαεξαδική τιμή έχει 82 χαρακτήρες κειμένου.

Αξία Πώς λαμβάνεται Αποστέλλεται σε
redirect_uri Η διεύθυνση URL επιστροφής, η ίδια με αυτήν που εξουσιοδοτήσατε ερώτημα και POST /token/
nonce 41 χαρακτήρες → δεκαεξαδικό ερώτημα; επιστρέψτε στο GET
state 41 χαρακτήρες → δεκαεξαδικό Ερώτημα
code_verifier 41 χαρακτήρες → δεκαεξαδικό μόνο POST /token/ (όχι στο ερώτημα)
challenge_code code_verifier SHA-256 (δεκαεξαδική σύνοψη) ερώτημα, όπως challenge_code
wr_conf → Διαμόρφωση επιλογέα δεκαεξαδικού JSON Ερώτημα

wr_conf υποστηρίζει τα ίδια πεδία με το Frontend iframe. Παράδειγμα πριν από τη μετάβαση σε δεκαεξαδικό:

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

Δεκαεξαδικό αυτού του JSON:

7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d

Η μετατροπή wr_conf σε δεκαεξαδικό δεν δημιουργεί nonce, state ή code_verifier. Αυτές οι τρεις τιμές δημιουργούνται ξεχωριστά και πρέπει να τις διατηρήσετε (που σχετίζονται με το nonce) μέχρι το POST /token/.

Παράδειγμα στην PHP, ισοδύναμο με αυτό που χρησιμοποιούμε εσωτερικά:

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. Ανακατευθύνετε τον χρήστη

Δημιουργήστε το ερώτημα και ανακατευθύνετε. Παράδειγμα με τιμές συνεπείς μεταξύ τους:

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

Ο χρήστης βλέπει τον επιλογέα τράπεζας, πραγματοποιεί έλεγχο ταυτότητας και όταν τελειώσει, Wealth Reader τον επιστρέφει στο redirect_uriσας.

4. Λάβετε το GET σε redirect_uri

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

Χρησιμοποιήστε το nonce για να ανακτήσετε το code_verifier που αποθηκεύσατε στο βήμα 2. Εάν το nonce δεν είναι αυτό που εκδώσατε, απορρίψτε το αίτημα.

5. Ολοκληρώστε την πρόκληση

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'
Πεδίο Αξία
grant_type authorization_code
redirect_uri Ακριβώς το ίδιο με το βήμα 3
code Αυτό με το GET
code_verifier Το δεκαεξαδικό που δημιουργήσατε στο βήμα 2

Εάν οι τιμές ταιριάζουν, η απάντηση είναι η JSON της τράπεζας (ίδιο σχήμα με το callback του iframe): success, payload και statistics (operation_id, token, code).

Αποθηκεύστε token και code εάν πρόκειται να κάνετε ανανέωση με POST https://api.wealthreader.com/entities/αργότερα.

Δείγμα κώδικα

Υπάρχει ένα παράδειγμα στην Java (JBang/Java 17) που δημιουργεί τις παραμέτρους και ολοκληρώνει την πρόκληση:

Λήψη δείγματος Java (ZIP)

Εάν χρειάζεστε την ίδια ροή σε άλλη γλώσσα, γράψτε μας στο support@wealthreader.com.

Τελευταία ενημέρωση