IOSOR Ghiduri
Un webhook duplicat nu trebuie să creeze un al doilea debit
Cale de eșec: reîncercările și reluările rămân idempotente pentru bani prepaid și inbox — un ID de eveniment, un rând de debit, o linie de inbox.
Livrarea la cel puțin o dată va reîncerca. Un webhook duplicat care trimite un al doilea debit sau a doua linie în inbox reprezintă un incident financiar și operațional, nu o simplă confirmare inofensivă. Această pagină reprezintă calea de eșec: reîncercările și reluările rămân idempotente pe soldul prepaid și inbox — nu eseul despre idempotența trimiterii prin API și nici ghidul de reîncercare SMS inbound.
Legate: Poartă pentru semnătură și fereastră de replay, Contractul webhook înainte de prima trimitere, Rânduri debit vs status livrare pe același ledger.
IOSOR este o soluție prepaid white-label.
Idempotența este o cale de eșec, nu un slogan
Calea fericită: un eveniment semnat, o acceptare, un debit. Calea de eșec distruge încrederea — timeout, 5xx, reluare de la furnizor, re-push din partea operatorului. Salvați cheia de idempotență din Contractul webhook înainte de prima trimitere înainte de efectele secundare: ledger, inbox, CRM.
Ce se consideră un duplicat
| Semnal | Tratează ca duplicat când | Rezultat sigur |
|---|---|---|
| ID Eveniment | Același ID acceptat deja în fereastră | ACK; fără al doilea debit |
| ID Mesaj | Același mesaj legat deja de ledger | Reutilizare rând; fără taxă nouă |
| Cheie Inbox | Același MO/MT deja înregistrat | Fără a doua linie în inbox |
| În afara ferestrei | Reîncercare veche după respingere | Respingere; fără scriere bani/status |
| Tip necunoscut | Nu este pe lista de evenimente a |
Banii nu trebuie să se miște de două ori
Un al doilea debit pentru același ID de eveniment este un bug, chiar dacă produsul «arată în continuare livrat». Finanțele filtrează după ID-ul de eveniment sau de mesaj și văd un singur rând prepaid pentru acea fereastră UTC. Efectele secundare parțiale după confirmare — CRM mai întâi, ledger mai târziu — produc un adevăr dublu. Dacă procesarea eșuează după persistență, reîncercați worker-ul pe aceeași cheie; nu reacceptați corpul HTTP ca o nouă taxă.
Nici inboxul nu trebuie să se dubleze
Idempotența nu se referă doar la bani. Un eveniment inbound sau de livrare reluat care deschide un al doilea fir de inbox antrenează suportul să vâneze fantome și poate declanșa bucle de auto-răspuns. Stocați cheia de inbox cu același ID de eveniment folosit pentru debit. Produsul și finanțele împart regulile de respingere și duplicare pentru a menține inbox-ul curat.
Lista de verificare pentru cumpărători privind webhook-urile sigure la duplicate
Mai întâi testați reluarea înainte de lansarea în producție. Trimiteți același webhook de două ori imediat: primul produce un debit, al doilea returnează ACK fără o a doua taxă sau rând. Verificați că ledger-ul backend arată un singur rând de tranzacție pentru acel marcaj temporal. Verificați că jurnalul de erori separă respingerile reale de reluările prin reîncercare.
Începeți cu IOSOR
Forțați un replay semnat în fereastră pe un coridor care a debitat deja. Exportați event id lângă id-ul din registru și dovediți un singur rând de debit plus un singur rând inbox. Dacă apare un al doilea debit, opriți acel consumator și rambursați rândul în plus — nu-l compensați cu trafic ulterior. Această poartă e bani de replay, nu o verificare E.164 și nu un text de livrare.
Materiale: Contractul webhook înainte de prima trimitere Poartă pentru semnătură și fereastră de replay Rânduri debit vs status livrare pe același ledger.
Rezumat IOSOR
Un replay nu e un trimis nou. Un event id scrie un debit.
A fost util acest ghid?
Ghiduri conexe
- Monitorizarea metricilor de sănătate pentru endpoint-urile webhook
Aflați cum să urmăriți latența răspunsului și codurile de stare pe platforma IOSOR pentru a gestiona proactiv sănătatea webhook-urilor și a preveni eșecurile.
- Configurarea alertelor webhook pentru pragurile portofelelor preplătite
Aflați cum să configurați webhook-uri automate pentru pragurile de sold în IOSOR pentru a monitoriza conturile preplătite, a preveni întreruperile serviciilor și a gestiona eficient provizionarea numerelor JIT.
- Procesarea evenimentelor webhook pentru Just-in-Time Provisioning
Stăpâniți ciclul de viață al canalelor primite în timp real folosind webhook-urile JIT de la IOSOR. Automatizați alocarea numerelor și actualizările registrului pentru CPaaS-ul dvs. white-label.