IOSOR Gabay
Ang duplicate na webhook ay hindi dapat lumikha ng ikalawang debit
Fail path: ang mga retry at replay ay nananatiling idempotent sa prepaid na pera at inbox — isang event ID, isang debit row, isang inbox line.
Ang at-least-once delivery ay magre-retry. Ang isang duplicate na webhook na nagpo-post ng ikalawang debit o ikalawang inbox line ay insidente sa pera at operasyon, hindi 'harmless ack'. Ang pahinang ito ay ang fail path: ang mga retry at replay ay nananatiling idempotent sa prepaid na pera at inbox — hindi ang essay ng API send-idempotency at hindi ang playbook ng inbound SMS retry.
Kaugnay: Gate ng lagda at replay window, Webhook kontrata bago ang unang send, debit row at delivery status sa iisang ledger.
Ang IOSOR ay white-label prepaid.
Ang idempotency ay fail path, hindi slogan
Happy path: isang signed event, isang accept, isang debit. Ang fail path ay sumusunog sa tiwala — timeout, 5xx, provider replay, operator re-push. I-store ang idempotency key mula sa Webhook kontrata bago ang unang send bago ang mga side effect: ledger, inbox, CRM.
Ano ang binibilang bilang duplicate
| Signal | Ituring bilang duplicate kapag | Ligtas na kinalabasan |
|---|---|---|
| Event ID | Tinanggap na ang ID sa loob ng window | ACK; walang ikalawang debit |
| Message ID | Nakaugnay na ang mensahe sa ledger | Gamitin ulit ang row; walang bagong charge |
| Inbox key | Na-file na ang MO/MT | Walang ikalawang inbox line |
| Labas ng replay window | Stale retry matapos ang gate reject | Reject; |
Ang pera ay hindi dapat lumipat nang dalawang beses
Ang ikalawang debit para sa parehong event ID ay isang bug kahit na ang produkto ay nagpapakita pa rin ng 'delivered'. Ang finance ay nag-filter sa pamamagitan ng event o message ID at nakakita ng isang prepaid row para sa UTC window na iyon. Ang partial side effects pagkatapos ng ACK — CRM muna, ledger pagkatapos — ay lumilikha ng dobleng katotohanan.
Ang inbox ay hindi rin dapat dumoble
Ang idempotency ay hindi lamang tungkol sa pera. Ang isang replayed inbound o delivery event na nagbubukas ng ikalawang inbox thread ay nagtuturo sa support na humabol sa mga multo at maaaring mag-trigger ng mga autoreply loop. I-store ang inbox key gamit ang parehong event ID na ginamit para sa debit. Ang produkto at finance ay nagbabahagi ng reject/duplicate status.
Checklist ng mamimili para sa mga duplicate-safe na webhook
- Naka-lock ba ng system mo ang event ID sa ledger bago ang ACK?
- Nakikilala ba ng iyong CRM ang replay at binabalewala ito?
- Mayroon ka bang gate para tanggihan ang mga event sa labas ng replay window?
- Pinapanatili ba ng iyong ledger ang event ID na unique ayon sa UTC window?
Magsimula sa IOSOR
Puwersahin ang isang signed na replay sa loob ng window sa corridor na nakadebit na. I-export ang event id sa tabi ng ledger id at patunayan ang isang debit row at isang inbox row. Kapag may second debit, ihinto ang consumer at i-refund ang sobrang row — huwag i-net sa susunod na trapiko. Ang gate na ito ay pera ng replay, hindi E.164 check at hindi shipping copy.
Buod ng IOSOR
Ang isang replay ay hindi nangangahulugang may bagong pagpapadala ng pondo. Ang bawat natatanging event id ay dapat magtala lamang ng iisang debit sa ledger.
Gawin: Panatilihing nakatutok ang beripikasyon ng pirma at ang replay window sa administrative console. Pagkatapos, patunayan na iisang debit lamang ang naisusulat sa ledger pagkatapos ng isang pumasok na POST sa tinukoy na window, at i-export ang audit log sa UTC para sa beripikasyon.
Huwag: Huwag mag-debit sa bawat natanggap na POST, at huwag kailanman ituring ang muling pagsubok ng network bilang pangalawang hiwalay na invoice.
Nakatulong ba ang gabay na ito?
Mga kaugnay na gabay
- Pagsubaybay sa Health Metrics ng Webhook Endpoint
Matutong subaybayan ang response latency at status codes sa loob ng IOSOR platform upang proaktibong pamahalaan ang webhook health at maiwasan ang mga callback failure.
- Pag-configure ng mga Webhook Alert para sa Threshold ng Prepaid Wallet
Alamin kung paano i-configure ang mga automated balance threshold webhook sa IOSOR para subaybayan ang mga prepaid account at pamahalaan ang JIT number provisioning.
- Pagproseso ng JIT Number Provisioning Webhook Events
Master ang real-time lifecycle ng mga inbound channel gamit ang IOSOR JIT provisioning webhooks. I-automate ang pagtatalaga ng numero at pag-update ng ledger para sa iyong white-label CPaaS.