ارسال SMS با PHP؛ بررسی REST API و SOAP

Engagements Icon
26
ارسال SMS با PHP؛ بررسی REST API و SOAP

پی اچ پی (PHP) یکی از زبان‌های پرکاربرد توسعۀ وب است که به‌دلیل سادگی، هزینۀ مناسب، سازگاری با پایگاه‌های دادۀ مختلف و استفاده در ابزارهایی مانند وردپرس، WHMCS و فریم‌ورک لاراول، همچنان طرفداران زیادی دارد.

سامانۀ ملی پیامک با ارائۀ وب‌سرویس، پلاگین‌های متن‌باز، مخزن اختصاصی در گیت‌هاب، نمونه‌کدهای آماده و «کنسول ملی پیامک» مبتنی بر REST API و Auth Token، امکان افزودن قابلیت ارسال پیامک به پروژه‌های PHP را فراهم کرده است.

در این مطلب، روش‌های ارسال پیامک با PHP و استفاده از وب‌سرویس ملی پیامک را بررسی می‌کنیم.

روش‌های اتصال PHP به وب‌سرویس پیامکی

برای استفاده از Web API در PHP به‌طور کلی دو روش وجود دارد:

  1. SOAP (Simple Object Access Protocol): پروتکلی مبتنی بر XML است که معمولاً از HTTP یا HTTPS برای تبادل اطلاعات استفاده می‌کند.
  2. REST (Representational State Transfer): نوعی معماری نرم‌افزاری برای طراحی و استفاده از وب‌سرویس‌هاست. سرویس‌هایی که براساس این معماری ارائه می‌شوند، RESTful نام دارند.
مسیر اتصال کد PHP به وب‌سرویس ارسال پیامک از طریق REST API و SOAP

پس از پردازش درخواست در درگاه پیامکی، پیام برای شمارۀ مقصد ارسال می‌شود.

وب‌سرویس ملی پیامک از هر دو روش پشتیبانی می‌کند.

کاربران می‌توانند براساس نیاز پروژه با استفاده از مستندات و نمونه‌کدهای موجود، قابلیت ارسال پیامک را به سایت یا وب‌اپلیکیشن خود اضافه کنند.

برای استفاده از SOAP باید افزونۀ مربوط به آن روی سرور فعال باشد. در روش REST نیز معمولاً از cURL یا کتابخانه‌های مشابه برای ارسال درخواست استفاده می‌شود. به‌دلیل سادگی پیاده‌سازی، روش REST در بسیاری از پروژه‌ها کاربرد بیشتری دارد.

ارسال پیامک با PHP از طریق REST

برای استفاده از سرویس REST در PHP معمولاً کتابخانۀ cURL پیشنهاد می‌شود. در این روش، داده‌ها از طریق پروتکل HTTP یا HTTPS ارسال شده و نوع درخواست و پارامترهای موردنیاز هر متد در مستندات رسمی وب‌سرویس مشخص شده است.

اطلاعات موردنیاز هر درخواست، براساس ساختار مشخص‌شده در مستندات API برای وب‌سرویس ارسال می‌شوند. امنیت این ارتباط به استفاده از HTTPS، شیوۀ احراز هویت و نحوۀ نگهداری اطلاعات دسترسی بستگی دارد

ارسال پیامک با PHP از طریق SOAP

پروتکل SOAP قدمت بیشتری نسبت به REST دارد و برای استفاده از آن می‌توان از کلاس SoapClient در PHP کمک گرفت. این کلاس امکان ارسال درخواست، دریافت پاسخ و فراخوانی متدهای وب‌سرویس را فراهم می‌کند.

برای استفاده از این روش باید افزونۀ SOAP روی سرور فعال باشد؛ در غیر این صورت، PHP قادر به ارسال و پردازش درخواست‌های SOAP نخواهد بود. بنابراین پیش از پیاده‌سازی، از فعال‌بودن این افزونه روی سرور یا هاست خود مطمئن شوید.

رفع خطای غیرفعال‌بودن SOAP در PHP

اگر هنگام اتصال به وب‌سرویس با خطای مربوط به SOAP یا بارگذاری WSDL مواجه شدید، ابتدا فعال‌بودن افزونۀ SOAP را بررسی کنید. در صورت غیرفعال‌بودن، می‌توانید از پشتیبانی هاست بخواهید آن را فعال کند یا از ابزار مدیریت سرور و هاست کمک بگیرید.

PHP
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://api.payamak-panel.com/post/send.asmx?wsdl' : failed to load external entity "https://api.payamak-panel.com/post/send.asmx?wsdl"

کلاس‌ها و بخش‌های وبسرویس ملی پیامک

وب‌سرویس ملی پیامک بخش‌ها و متدهای مختلفی برای ارسال و مدیریت پیامک دارد. مهم‌ترین بخش‌های آن شامل ارسال پیامک، پیامک پترن، دریافت پیامک، دفترچه تلفن و مدیریت کاربران نمایندگی است.

فهرست کامل متدها همراه با مستندات و نمونه‌کدها در صفحۀ مستندات وب‌سرویس ملی پیامک قرار دارد. توسعه‌دهندگان می‌توانند براساس نیاز پروژه از نمونه‌کدهای سایت یا پکیج‌های موجود در گیت‌هاب ملی پیامک استفاده کنند.

وب‌سرویس ارسال پیامک

در بخش ارسال، متدهای مختلفی مانند ارسال پیامک به یک یا چند مخاطب، دریافت وضعیت تحویل، مشاهدۀ پیامک‌های ارسال‌شده و دریافت‌شده، بررسی اعتبار و ارسال رمز یک‌بارمصرف وجود دارد.

طراحی سایت آسان با سایت‌ساز پرتال | راهکاری سریع و حرفه‌ایحتماً بخوانید: طراحی سایت آسان با سایت‌ساز پرتال | راهکاری سریع و حرفه‌ای

برای مشاهدۀ جزئیات متدها و نمونه‌کدهای PHP به بخش مستندات وب‌سرویس ارسال پیامک مراجعه کنید.

وب‌سرویس خدماتی و ارسال پیامک پترن

خطوط پیامکی به‌طور کلی در دو گروه تبلیغاتی و خدماتی قرار می‌گیرند. خطوط تبلیغاتی برای ارسال پیام‌های تبلیغاتی استفاده می‌شوند؛ اما خطوط خدماتی مخصوص پیام‌های اطلاع‌رسانی و خدماتی هستند. ارسال محتوای تبلیغاتی از خطوط خدماتی مجاز نیست.

ارسال پیامک به شماره‌های مسدودکنندۀ تبلیغات

برخی مشترکان دریافت پیامک از خطوط تبلیغاتی را مسدود کرده‌اند که اصطلاحاً در «لیست سیاه مخابرات» قرار دارند. برای ارسال پیام‌های ضروری و اطلاع‌رسانی به این شماره‌ها باید از مسیرهای خدماتی مجاز استفاده کرد.

دریافت خط خدماتی اختصاصی شرایط مشخصی دارد که در صفحۀ خطوط خدماتی توضیح داده شده است. کاربرانی که خط خدماتی اختصاصی ندارند برای پیام‌های اطلاع‌رسانی از سرویس پترن یا خط خدماتی اشتراکی ملی پیامک استفاده می‌کنند.

در این روش، متن پیام از قبل در قالب یک الگو ثبت و تأیید می‌شود و متغیرهایی مانند نام کاربر یا کد تأیید هنگام ارسال جایگزین می‌شوند. این سرویس با نام‌هایی مانند ارسال پترن و ارسال براساس الگو نیز شناخته می‌شود. برای مشاهدۀ روش‌های موجود و نمونه‌کدهای PHP به بخش مستندات وب‌سرویس پیامک پترن مراجعه کنید.

وب‌سرویس دریافت پیامک

این بخش برای مشاهدۀ پیام‌های دریافتی، دریافت جزئیات پیام، بررسی پیامک‌ها در بازه‌های زمانی مختلف، انتقال پیام‌های دریافتی و حذف پیام کاربرد دارد.

برای مشاهدۀ متدها و نمونه‌کدهای PHP، بخش مستندات وب‌سرویس دریافت پیامک را مطالعه کنید.

وب‌سرویس دفترچه تلفن

وب‌سرویس دفترچه تلفن امکان ایجاد گروه، افزودن مخاطب، بررسی وجود شماره، مشاهدۀ اطلاعات گروه‌ها و ویرایش یا حذف مخاطبان را فراهم می‌کند.

جزئیات این متدها و نمونه‌کدهای PHP در بخش مستندات وب‌سرویس دفترچه تلفن قرار دارد.

وب‌سرویس کاربران و نمایندگان

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

مستندات و نمونه‌کدهای PHP این بخش در صفحۀ وب‌سرویس کاربران و نمایندگان قابل مشاهده است.

روش‌های استفاده از وبسرویس ملی پیامک در PHP

ملی پیامک برای اتصال پروژه‌های PHP به وب‌سرویس و ارسال پیامک، سه مسیر در اختیار توسعه‌دهندگان قرار داده است. کاربران می‌توانند براساس نیاز پروژه از پکیج‌های گیت‌هاب، نمونه‌کدهای مستندات یا کنسول ملی پیامک استفاده کنند.

استفاده از پکیج‌های گیت‌هاب ملی پیامک

پکیج‌های وب‌سرویس برای زبان PHP و فریم‌ورک لاراول در گیت‌هاب ملی پیامک منتشر شده‌اند. این پکیج‌ها امکان دسترسی به متدهای مختلف وب‌سرویس را فراهم می‌کنند و توسعه‌دهندگان می‌توانند آن‌ها را در پروژه‌های خود نصب و استفاده کنند.

استفاده از نمونه‌کدهای وب‌سرویس

اگر تنها به یک یا چند متد مشخص نیاز دارید، می‌توانید از نمونه‌کدهای موجود در صفحۀ مستندات وب‌سرویس ملی پیامک استفاده کنید. در این بخش، توضیحات مربوط به پارامترهای ورودی و خروجی و نمونه‌کد متدهای مختلف در دسترس است.

استفاده از کنسول ملی پیامک

روش دیگر، استفاده از کنسول ملی پیامک است. این سرویس بر پایۀ REST API فعالیت می‌کند و احراز هویت در آن از طریق Auth Token انجام می‌شود؛ بنابراین به‌جای قراردادن نام کاربری و رمز عبور در درخواست‌ها، می‌توان از توکن دسترسی استفاده کرد.

کنسول ملی پیامک قطعه‌کدهای آماده‌ای را نیز در اختیار توسعه‌دهندگان قرار می‌دهد تا بتوانند API را سریع‌تر در پروژه‌های خود پیاده‌سازی کنند. اطلاعات هر متد، پارامترهای موردنیاز و نحوۀ فراخوانی آن را باید براساس مستندات فعلی کنسول بررسی کرد.

برای مثال نمونه کد PHP برای ارسال رمز یک‌بارمصرف در کنسول ملی پیامک به‌صورت زیر است:
PHP
$url = 'https://console.melipayamak.com/api/send/otp/34bdeb5d************9561a47a74';
$data = array('to' => '09123456789');
$data_string = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

// Next line makes the request absolute insecure
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Use it when you have trouble installing local issuer certificate
// See https://stackoverflow.com/a/31830614/1743997

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
curl_close($ch);
// to debug
// if(curl_errno($ch)){
// echo 'Curl error: ' . curl_error($ch);
// }
ثبت‌نام و ارسال پیامک انبوه!
ثبت‌نام و ارسال پیامک انبوه!
در کمتر از 1 دقیقه با فعال‌سازی پنل پیامکی، کمپین بازاریابی پیامکی خود را ایجاد کنید و کسب‌وکار خود را رونق دهید.
خرید پنل پیامکی 30% تخفیف همۀ پکیج‌ها

جمع‌بندی ارسال پیامک با php

تا اینجا به تمام روش‌های ارسال پیامک با php اشاره کردیم و شما تا حدودی با خدمات ارائه‌شدۀ سامانه ملی پیامک در این زمینه آشنا شدید.

در صورتی که پنل را تهیه کردید و نیاز به مشاورۀ بیشتر داشتید با کارشناسان ملی پیامک 02163404 تماس بگیرید. همچنین در انتهای همین مطلب می‌توانید سوالات بیشتر را برای ما و مخاطبان ملی پیامک بنویسید تا به آن‌ها پاسخ دهیم.

سوالات متداول

اطلاعات اتصال به وب‌سرویس را کجا نگهداری کنیم؟
نام کاربری، رمز عبور، API Key یا Auth Token را مستقیماً داخل کد قرار ندهید. بهتر است این اطلاعات در متغیرهای محیطی مانند فایل .env ذخیره شوند و دسترسی به آن‌ها فقط از سمت سرور امکان‌پذیر باشد.
چرا درخواست API موفق است، اما پیامک به مقصد نمی‌رسد؟
ثبت موفق درخواست لزوماً به‌معنای تحویل پیامک نیست. کمبود اعتبار پنل، اشتباه‌بودن شماره، مسدودبودن پیامک‌های تبلیغاتی یا اختلال اپراتور می‌تواند مانع تحویل شود. برای پیداکردن علت، وضعیت ارسال و کد پاسخ وب‌سرویس را بررسی کنید
برای ارسال کد تأیید از کدام سرویس استفاده کنیم؟
برای ارسال کد تأیید یا OTP بهتر است از وبسرویس ارسال پیامک پترن یا خط خدماتی اشتراکی استفاده کنید. در این روش، متن پیام از قبل تأیید می‌شود و هنگام ارسال فقط متغیرهایی مانند کد تأیید جایگزین خواهند شد.
به‌دنبال رشد کسب و کارتان هستید؟ ملی پیامک به شما امکان جذب، نگهداری و تعامل با مشتری را می‌دهد.
ثبت نام و ارسال پیامک ثبت نام در کمتر از 1 دقیقه
در بحث‌‌ پیرامون این مقاله شرکت کنید! ارسال دیدگاه

تیم تحریریۀ ملی پیامک

هر آن‌چه در ملی پیامک می‌خوانید، حاصل یک کوشش تیمی است؛ کوششی در جهت یافتن درست‌ترین پاسخ به مسائل و انتقال آن به شما. ما امیدواریم تلاش‌های مجموعۀ ما بتواند تأثیری هر چند کوچک در بهبود کیفیت فضای دیجیتال ایران داشته باشد.
دربارۀ تیم ما بیشتر بدانید.
1دیدگاه
در بحث‌‌ پیرامون این مقاله شرکت کنید!
ارسال دیدگاه

  • Gravatar Icon

    قاسم انتظامی

    4 سال پیش

    خطای 502 Bad Gateway روبا چندتا بولد پوینتی که گفتین میشه رفع کرد؟

ارسال پیامک از اینترنت

ارسال و دریافت پیامک تکی و انبوه با شماره‌های اینترنتی
مشاهده تعرفه‌ها فعالسازی در کمتر از 1 دقیقه

ثبت نام

در کمتر از 1 دقیقه ارسال پیامک را شروع کنید.

شرایط و قوانین را مطالعه کرده و قبول دارم.

پنل خود را انتخاب کنید