

در اینجا به مقایسه بین روش Polling و Webhook پرداخته میشود.
فرض کنید یک وبسایت تجارت الکترونیک داریم. مشتریان سفارشها را از طریق دروازه API به سرویس سفارش ارسال میکنند که به سرویس پرداخت برای انجام تراکنشهای پرداخت میرود. سپس سرویس پرداخت با یک ارائهدهنده خدمات پرداخت خارجی (PSP) برای تکمیل تراکنشها ارتباط برقرار میکند.
برای برقراری ارتباط با PSP خارجی، دو روش وجود دارد:
🔹 ۱. Short Polling
پس از ارسال درخواست پرداخت به PSP، سرویس پرداخت به صورت مداوم وضعیت پرداخت را از PSP سوال میکند. بعد از چندین بار سوال کردن، PSP در نهایت وضعیت را باز میگرداند.
معایب Short Polling:
۱) سوال کردن مداوم از وضعیت نیاز به منابع از سوی سرویس پرداخت دارد.
۲) سرویس خارجی به صورت مستقیم با سرویس پرداخت ارتباط برقرار میکند که باعث ایجاد آسیبپذیریهای امنیتی میشود.
🔹 ۲. Webhook
ما میتوانیم یک Webhook با سرویس خارجی ثبت کنیم. این به این معناست که: “وقتی اطلاعاتی در مورد درخواست دارم، به من در یک URL مشخص زنگ بزن.” وقتی PSP پردازش را به اتمام رساند، یک درخواست HTTP برای اطلاعرسانی وضعیت پرداخت ارسال میکند.
این روش، پارادایم برنامهنویسی را تغییر میدهد و سرویس پرداخت دیگر نیازی به استفاده از منابع برای چک کردن وضعیت پرداخت نخواهد داشت.
اگر PSP هرگز calls back نکند؟
میتوانیم یک کار نگهداری تنظیم کنیم تا هر ساعت وضعیت پرداخت را بررسی کند.
Webhookها معمولاً به عنوان API معکوس یا API Push شناخته میشوند زیرا سرور درخواستهای HTTP را به کلاینت ارسال میکند. هنگام استفاده از وبهوک باید به ۳ نکته توجه کنیم:
۱) باید یک API مناسب برای تماس با سرویس خارجی طراحی کنیم.
۲) باید قوانین مناسبی در دروازه API برای دلایل امنیتی تنظیم کنیم.
۳) باید URL صحیح را در سرویس خارجی ثبت کنیم.
Webhookها ابزاری قدرتمند برای بهینهسازی ارتباطات با سرویسهای خارجی و کاهش هزینههای منابع هستند.