Նկարագրություն
VPOS.am webhooks-ը փոխանցում է payment, fiscal եւ reconciliation events signatures-ով, retries-ով եւ idempotent handling պահանջներով:
Նվազագույն անվտանգ handler
Handler-ը ընդունում է event-ը, ստուգում signature-ը, պահում payload-ը եւ event id-ն, արագ պատասխանում եւ ծանր business logic-ը ուղարկում queue: Սա նվազեցնում է timeout-ի եւ repeated delivery-ի ռիսկը:
Orders, invoices կամ customer states չպետք է փոխվեն մինչեւ signature verification: Եթե signature-ը invalid է, event-ը մերժվում է եւ գրանցվում security log-ում:
Retries եւ ժամանակավոր failures
Repeated webhook delivery-ն business logic-ի համար չպետք է error լինի: Եթե event id-ն արդեն մշակվել է, handler-ը վերադարձնում է successful կամ safe current result առանց duplicate entities ստեղծելու:
Եթե CRM-ը, ERP-ն կամ fiscal service-ը հասանելի չեն, event-ը պահվում է եւ retry արվում queue-ի միջոցով: Failure-ը պետք է տեսանելի լինի operations-ին, ոչ թե կորչի server logs-ում:
Որ events-ն է պետք առանձնացնել
Payment events, fiscal events եւ reconciliation events-ը ճիշտ է մշակել առանձին: Դրանք ունեն տարբեր հետեւանքներ՝ մեկը փոխում է order-ը, մյուսը թողարկում է receipt, երրորդը ստեղծում manual review task:
Այս մոտեցումը integration-ը դարձնում է հասկանալի developers-ի, operations-ի եւ accounting-ի համար:
Հաճախակի հարցեր
Webhook handler-ը ինչ պետք է անի մինչ order փոխելը:
Այն պետք է ստուգի signature-ը, պահի event id-ն եւ payload-ը, համոզվի, որ event-ը նախկինում չի մշակվել, եւ միայն հետո փոխի order, invoice, fiscal job կամ CRM status:
Ինչու heavy business logic-ը պետք է տեղափոխել queue:
Webhook endpoint-ը պետք է արագ պատասխանի: Queue-ն թույլ է տալիս temporary failures-ից հետո կրկնել CRM, ERP, e-mail կամ fiscal actions-ը եւ չկորցնել event-ը: