Betalinger
Status, afstemning og afstemning
Tjek status fra din backend, indtil du får en bankkonklusion. En callback, SCA returnering eller widget-lukning udgør ikke økonomisk bekræftelse.
Forespørgsel fra backend
: "${WR_API_KEY:?Defina WR_API_KEY en el entorno seguro de su backend}"
curl --request POST 'https://api.wealthreader.com/payments/?action=status' \
--header 'Content-Type: application/json' \
--header "X-API-Key: ${WR_API_KEY}" \
--data '{
"payment_intent_id": "11111111-1111-4111-8111-111111111111",
"refresh": true
}'
refresh er valgfri og true som standard. Wealth Reader begrænser eksterne forespørgsler efter intention; anvend backoff også på din backend og skab ikke en anden intention, så længe resultatet er tvetydigt.
Tre forskellige dimensioner
| Bane | Kerneværdier | Hvad svarer du |
|---|---|---|
state |
ready, authorization_required, processing, reconciliation_required, terminaler |
Holdbar strømningstilstand. |
interaction_status |
not_started, authorization_required, processing, completed, finished |
Uanset om den tekniske interaktion sluttede eller fortsætter. |
payment_status |
not_initiated, pending, unknown, settled, rejected, cancelled, expired, failed |
Normaliseret økonomisk resultat. |
Den eneste positive bekræftelse er payment_status: settled, som stammer fra en udtrykkelig bankstatus, der bekræfter betalingens afvikling. Et teknisk resultat DONE, interaction_status: completed eller payment_status: pending udgør aldrig betalingens afvikling.
Tvetydig resultat
Et ukendt netværksafbrydelse, timeout eller svar efter starten ændres til reconciliation_required og eksponerer payment_status: unknown. Starten gentages ikke automatisk.
Den nuværende udbyder tilbyder ikke en forespørgsel, der rekonstruerer en initiering, hvis svar gik tabt: dens tilstandsforespørgsel kræver den uigennemsigtige kontekst, som den samme initiering returnerer. Derfor kræver det tilfælde manuel afstemning; det kan ikke hentes ved autopolling eller ved at lede efter callback-ID'et.
I så fald:
- behold idempotensnøglen og identifikatoren;
- skaber ikke en anden intention eller autoriserer igen;
- Se den autentificerede status for Wealth Reader og behold din sikre afstemningsreference;
- Kontakt teknisk support; fortsæt ikke statusforespørgslerne, når
automatic_recoveryerfalse.
For en hensigt, der kræver manuel afstemning, kan server-til-server-forespørgslen inkludere:
{
"payment_status": "unknown",
"reconciliation_required": true,
"reconciliation": {
"automatic_recovery": false,
"reference": "wrp_recon_0123456789abcdef0123",
"request_id": "11111111-1111-4111-8111-111111111111",
"correlation_id": "22222222-2222-4222-8222-222222222222",
"reason": "initiation_rejected"
}
}
Disse identifikatorer er referencer skrevet til support. De leveres ikke til widgetten og tillader ikke kunden at forespørge eller rekonstruere udbyderens interne tilstand.
reason er en Wealth Readerkode, aldrig udbyderens tekst. initiation_rejected indikerer, at udbyderen svarede med en definitiv afvisning af initieringen; initiation_response_unavailable, at der ikke var noget genkendeligt svar. I begge tilfælde er initieringen allerede blevet sendt, så den gentages ikke: behold referencen og eskaler til support.
Tilbagekaldelse og genafspilning
SCA-returen når en callback, der udelukkende er beregnet til betalinger. Wealth Reader validerer korrelationen, videresender bankens parametre til udbyderen som de er (uforudsete navne registreres, de afviser aldrig en allerede autoriseret SCA-retur), forbruger kun returen én gang og bevarer den krypterede følsomme tilstand. En gentagelse svarer kun HTTP 409; den afhænger ikke af en intern kode i kroppen.
Autentificering kan kræve flere omdirigeringer. Hver valideret REDIRECT fortsætter i samme SCA vindue og åbner et nyt callbackcheckpoint; det skaber ikke en ny initiering. Et resultat DECOUPLED holder intentionen i processing for widgetten til at forespørge om status. En eksplicit RETRY gentager kun den allerede forberedte gennemførelse med begrænset ventetid og antal forsøg. ERROR, PASSWORD, MORE_INFO, SELECT_OPTION, et ukendt resultat eller udtømning af disse grænser ender i afstemning, aldrig i en ny initiering.
Forhandleren behøver ikke at offentliggøre eller behandle den callback. Denne udgivelse sender ikke webhooks til forhandleren: den offentlige commit-kontrakt er server-til-server polling.
Lukning af widgetten
flow_closed kommunikerer, at den synlige interaktion er afsluttet. Frontend kan lukke modalen, men den må ikke vise "betalt" for den begivenhed. Backend beholder ansvaret for at bekræfte betalingen eller afstemme den.
Næste skridt
Fuldend listen over Sikkerhed og test.