Egy Verification of Payee kérés általában valós időben ad egyezési eredményt, elég gyorsan ahhoz, hogy a fizető az átutalás engedélyezése előtt lássa. A VoP azonban egy másik bankhoz intézett hálózati hívás, és a hálózatok nem tökéletesen megbízhatóak. Egy válaszoló PSP lehet lassú, a kapcsolat megszakadhat, vagy egy kérés sorba kerülhet. Egy éles üzemre kész integrációnak terve kell legyen a néhány másodperccel - vagy néhány perccel - később érkező válaszra.
Miért válhat aszinkronná egy VoP hívás
A séma szűk válaszablakot határoz meg, de a valós forgalom mégis olyan szélsőséges eseteket produkál, amelyeket kecsesen kell kezelni, nem kemény hibaként:
- A válaszoló PSP átmenetileg túlterhelt, és éppen a szinkron időtúllépésén túl válaszol.
- Egy átmeneti hálózati hiba újrapróbálkozást indít, amely az eredeti kérés visszatérése után fejeződik be.
- Sok ellenőrzést küld be kötegelve (például egy fizetési sorozatot), és az eredményeket begyűjti, ahogy visszaérkeznek.
A webhookfolyam megtervezése
A legtisztább minta az, hogy minden ellenőrzésnek stabil azonosítót ad, függőben lévő állapotot ad vissza, amikor a szinkron ablak lejár, és a végső eredményt webhookkal kézbesíti.
- 1 Küldje be az ellenőrzést, és tárolja a kérésazonosítóját ahhoz a fizetéshez, amelyet éppen tenni készül.
- 2 Ha a szinkron időkeretén belül nem érkezik válasz, mutasson a fizetőnek függőben lévő állapotot hiba helyett.
- 3 Fogadja a végső egyezés, részleges egyezés, nincs egyezés vagy nem elérhető eredményt a webhook végpontján.
- 4 Párosítsa a webhook hasznos adatait vissza a tárolt kérésazonosítóhoz, és frissítse a fizetési döntést.
Alapértelmezésben biztonságos és idempotens
Minden webhooknál ellenőrizze az aláírást, mielőtt megbízik benne, és tegye idempotenssé a kezelőjét: ugyanaz az eredmény többször is kézbesíthető. A feldolgozást a kérésazonosítóra kulcsolja, hogy egy duplikált kézbesítés soha ne hasson kétszer egy fizetésre.
A RoxPay szinkron eredményt ad vissza, amikor csak tud, és aláírt webhookra vált vissza, amikor egy válaszoló PSP lassú, így a fizetési folyamata reszponzív marad, a nyilvántartása pedig teljes.