ساخت سامانهٔ پیامکی اختصاصی بدون قرارداد مستقیم با اپراتور

ساخت سامانهٔ پیامکی اختصاصی بدون قرارداد مستقیم با اپراتور

تیم وب‌سرویس برنامه‌نویسان

شرکت‌های نرم‌افزاری، نرم‌افزارهای مالی و فروشگاه‌سازها دیر یا زود به این نقطه می‌رسند: مشتریانشان پیامک می‌خواهند و آن‌ها می‌خواهند این امکان را داخل محصول خودشان بدهند، با حساب‌وکتاب و گزارش خودشان. یک راه، قرارداد مستقیم با اپراتورهاست که سنگین و زمان‌بر است. راه دیگر، ساختن روی یک «درگاه پیامک» است. در این مقاله می‌گوییم یک سامانهٔ پیامکی چه اجزایی دارد و درگاه پیامک وب‌سرویس کدام بخش‌ها را برایتان آماده می‌کند.

یک سامانهٔ پیامکی از چه ساخته می‌شود؟

  1. اتصال به اپراتورها: ارسال واقعی پیامک، گرفتن گزارش تحویل و دریافت پیامک‌های ورودی.
  2. صف ارسال: تا ارسال ده‌ها هزار پیامک سرور را از کار نیندازد و هیچ پیامی گم نشود.
  3. حساب‌داری: موجودی، تعرفه، کسر هزینهٔ هر ارسال و تراکنش‌ها.
  4. چندمشتری بودن: هر مشتری شما کلید، اعتبار و دسترسی خودش را داشته باشد.
  5. گزارش و رویداد: وضعیت هر پیامک و خبر دادن به سامانهٔ مشتری.
  6. واسط کاربری: پنلی که مشتری شما می‌بیند؛ این بخش، تمایز محصول شماست.

چهار بخش اول زیرساخت‌اند و برای همه تقریباً یکسان؛ بخش آخر محصول شماست. درگاه پیامک (SMSGate) دقیقاً برای این ساخته شده که بخش‌های زیرساختی را آماده تحویل بگیرید و وقتتان را روی محصول بگذارید.

درگاه پیامک چه چیزهایی را آماده می‌دهد؟

یک API برای همه‌چیز

  • ارسال تکی، گروهی و نظیربه‌نظیر (متن جدا برای هر گیرنده) در یک درخواست.
  • گزارش ارسال‌ها و وضعیت هر گیرنده، با صفحه‌بندی و جست‌وجو در بازه‌های زمانی.
  • پیامک‌های دریافتی خطوط اختصاصی.
  • موجودی، تراکنش‌ها و خطوط حساب.

کلید جدا برای هر مشتری

برای هر مشتری یا هر بخش از کسب‌وکارتان یک کلید API بسازید. هر کلید اعتبار جدا دارد (از حساب اصلی به آن منتقل می‌کنید)، دسترسی جدا دارد (فقط عملیاتی را انجام می‌دهد که اجازه داده‌اید) و می‌تواند به IPهای مشخص محدود شود. نتیجه: اگر مصرف یک مشتری از کنترل خارج شود یا کلیدش لو برود، فقط همان کلید و همان اعتبار درگیر است.

وب‌هوک به جای استعلام پی‌درپی

لازم نیست هر چند ثانیه وضعیت پیام‌ها را بپرسید. نشانی سرور خودتان را تعیین کنید تا درگاه پیامک رویدادها را خودش بفرستد:

  • وب‌هوک تحویل: وقتی وضعیت یک گیرنده نهایی شد (تحویل شد، ناموفق بود یا رد شد)، شناسهٔ ارسال، شناسهٔ پیگیری، شماره و وضعیت را دریافت می‌کنید.
  • وب‌هوک دریافت: هر پیامکی که روی خط اختصاصی شما برسد، با متن کامل، شمارهٔ فرستنده و زمان دریافت به سامانه‌تان فرستاده می‌شود.

نشانی وب‌هوک را می‌توانید برای کل حساب یا برای هر خط جداگانه تعیین کنید؛ نشانیِ خط بر نشانیِ حساب مقدم است. در پیاده‌سازی گیرندهٔ وب‌هوک، سریع پاسخ دهید و پردازش سنگین را به پس‌زمینه ببرید. سرآیند X-Webhook-Attempt شمارهٔ تلاش را نشان می‌دهد؛ رویدادها را با trackId یکتا کنید تا اگر یک رویداد دوباره رسید، دو بار پردازش نشود.

تعرفهٔ اختصاصی

تعرفهٔ هر حساب جداگانه و بر اساس حجم ارسال ماهانه تعیین می‌شود: به تفکیک اپراتور (ایرانسل، همراه اول و سایر اپراتورها) و زبان متن (فارسی و لاتین)، به‌صورت مبلغ ثابت برای هر پیامک یا درصدی. موجودی حساب به ریال است و هزینهٔ هر ارسال در همان پاسخ ارسال برمی‌گردد، تا حساب‌وکتاب مشتریانتان را دقیق نگه دارید.

معماری پیشنهادی

مشتری شما ──> پنل/نرم‌افزار شما ──> درگاه پیامک ──> اپراتورها
                    ^                     │
                    └── وب‌هوک تحویل/دریافت ┘
  • کلید هر مشتری را روی سرور خودتان نگه دارید؛ مشتری با پنل شما کار کند، نه مستقیم با کلید.
  • batchId و trackId هر ارسال را کنار سفارش یا مشتری ذخیره کنید؛ این دو، پل گزارش‌گیری شما هستند.
  • برای کمبود موجودی هشدار بگذارید: هم برای حساب اصلی و هم برای کلید هر مشتری.

از کجا شروع کنیم؟

  1. از راه تماس با ما، حجم ارسال و نوع استفاده را اعلام کنید.
  2. حساب، خطوط و تعرفهٔ اختصاصی برایتان تعریف می‌شود.
  3. کلید API و دسترسی‌ها را می‌گیرید و IPهای مجاز را ثبت می‌کنید.
  4. با مستندات کامل در doc.webservice.ir ارسال را از نرم‌افزار خودتان شروع می‌کنید.

اگر به جای ساختن محصول، می‌خواهید پنل پیامک آماده را با برند خودتان بفروشید، مقالهٔ «نمایندگی پنل پیامک» را هم ببینید.