رفتن به مستندات توسعه‌دهندگان
مرجع توسعه‌دهنده

Webhooks

X-VPOS-Signature را روی request body اصلی بررسی کنید، event id را ذخیره کنید، سریعاً 2xx برگردانید و تحویل تکراری را به‌صورت idempotent پردازش کنید.

نسخه
API v1
آخرین بازبینی
وضعیت
قرارداد منتشر شده
پیمایش توسعه‌دهنده
01

نمای کلی

قرارداد عمومی webhook در VPOS.am رویداد امضاشده payment.status_changed را با وضعیت پرداخت تأییدشده در سمت سرور تحویل می‌دهد.

HTTP / HMAC

قرارداد امضا

پیش از پردازش payload یا تغییر وضعیت کسب‌وکار، HMAC دارای timestamp را روی بدنه خام درخواست بررسی کنید.

HTTP
X-VPOS-Event-Id: <event_id>
X-VPOS-Event-Type: payment.status_changed
X-VPOS-Webhook-Timestamp: <unix_timestamp>
X-VPOS-Signature: t=<unix_timestamp>,v1=<current_secret_hmac>[,v1=<grace_secret_hmac>]

signed_payload = <timestamp>.<raw_request_body>
signature = HMAC-SHA256(webhook_secret, signed_payload)
فیلدقرارداد
هدرX-VPOS-Signature
مقدار امضاشده<timestamp>.<raw_request_body>
الگوریتمHMAC-SHA256
تلرانس timestamp۵ دقیقه
مهلت تحویل۵ ثانیه
حداکثر تلاش پیش‌فرض۸ تلاش
برنامه تلاش مجددنمایی از ۳۰ ثانیه، با سقف ۱ ساعت
تأیید دریافتیک پاسخ 2xx را سریع برگردانید
چرخش رازهدر می‌تواند چند مقدار v1 داشته باشد. رویداد را فقط وقتی بپذیرید که دست‌کم یکی با راز فعلی یا راز مهلت‌دار منقضی‌نشده مطابقت داشته باشد.
پردازشامضا را بررسی کنید، event id را ذخیره کنید و سپس side effectها را در صف قرار دهید.
03

قرارداد عمومی event

در حال حاضر فقط payment.status_changed به‌صورت عمومی مستند شده است. fiscalStatus بخشی از data.payment است، اما به معنی وجود eventهای عمومی جداگانه برای fiscal یا reconciliation نیست.

04

Signature و تحویل مجدد

با merchant webhook secret مقدار HMAC-SHA256 را برای <timestamp>.<raw_request_body> محاسبه کنید، timestamp قدیمی را رد کنید و downstream actions را از طریق queue ایمن و idempotent انجام دهید.

05

نحوه استفاده از این صفحه

Webhooks به هماهنگ شدن سناریوی پرداخت میان مالک کسب‌وکار، تیم توسعه و عملیات کمک می‌کند. پیش از راه‌اندازی باید کانال فروش، مسیر provider، مسئول webhook، بررسی وضعیت و پشتیبانی مشتری پس از پرداخت مشخص شود.