Statusy
W DPay Web EID rozróżniamy dwa rodzaje statusów: status sesji (proces) i status wyniku (rezultat weryfikacji).
Status sesji (VerificationSession.status)
Opisuje aktualny etap procesu weryfikacji.
| Status | Opis | Terminalny |
|---|---|---|
created | Sesja utworzona, oczekuje na klienta | Nie |
pending | Klient otworzył link, jeszcze nie zaczął weryfikacji | Nie |
processing | Trwa proces u dostawcy (przelew, mObywatel itp.) | Nie |
completed | Sesja zakończona, dostępny wynik | Tak |
failed | Sesja zakończona niepowodzeniem | Tak |
expired | Sesja wygasła (TTL) lub została anulowana | Tak |
Pełny opis przejść w sekcji Lifecycle.
Status wyniku (VerificationResult.status)
Opisuje rezultat weryfikacji - dostępny tylko dla sesji w stanie completed.
| Status | Opis |
|---|---|
verified | Tożsamość potwierdzona - verified_data zawiera dane osobowe |
rejected | Tożsamość odrzucona - powody w rejection_reasons |
inconclusive | Wynik niejednoznaczny - wymaga ręcznej oceny |
Różnica między statusami
To są dwa niezależne poziomy:
| Status sesji | Status wyniku | Znaczenie |
|---|---|---|
completed | verified | Pozytywna weryfikacja, dane PII dostępne |
completed | rejected | Sesja zakończona, tożsamość odrzucona |
completed | inconclusive | Sesja zakończona, wynik niejednoznaczny |
failed | (brak) | Sesja nie doszła do etapu wyniku - błąd techniczny |
expired | (brak) | Sesja wygasła przed zakończeniem |
wskazówka
Sesja completed ≠ pozytywna weryfikacja. Zawsze sprawdzaj również result.status === 'verified' zanim zaakceptujesz tożsamość klienta.
Przykład sprawdzenia w PHP
<?php
$session = getVerificationSession($id);
if ($session['status'] !== 'completed') {
// Sesja jeszcze trwa lub się nie powiodła
return;
}
$result = getVerificationResult($id);
if ($result['status'] === 'verified') {
// OK - możemy zaakceptować klienta
$verifiedData = $result['verified_data'];
saveCustomerData($verifiedData);
} elseif ($result['status'] === 'rejected') {
// Odrzuć - powody w rejection_reasons
logRejection($result['rejection_reasons']);
} else {
// inconclusive - wymaga ręcznej weryfikacji
flagForManualReview($id);
}