Մշակողներին

Webhooks

Webhook-ը պարզապես notification չէ: Այն payment circuit-ի մաս է, ուստի handler-ը պետք է ստուգի signature-ը, արագ պատասխանի, պահի event id-ն եւ անվտանգ մշակի repeats-ը:

Նկարագրություն

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-ը: