پی اچ پی (PHP) یکی از زبانهای پرکاربرد توسعۀ وب است که بهدلیل سادگی، هزینۀ مناسب، سازگاری با پایگاههای دادۀ مختلف و استفاده در ابزارهایی مانند وردپرس، WHMCS و فریمورک لاراول، همچنان طرفداران زیادی دارد.
سامانۀ ملی پیامک با ارائۀ وبسرویس، پلاگینهای متنباز، مخزن اختصاصی در گیتهاب، نمونهکدهای آماده و «کنسول ملی پیامک» مبتنی بر REST API و Auth Token، امکان افزودن قابلیت ارسال پیامک به پروژههای PHP را فراهم کرده است.
در این مطلب، روشهای ارسال پیامک با PHP و استفاده از وبسرویس ملی پیامک را بررسی میکنیم.
روشهای اتصال PHP به وبسرویس پیامکی
برای استفاده از Web API در PHP بهطور کلی دو روش وجود دارد:
- SOAP (Simple Object Access Protocol): پروتکلی مبتنی بر XML است که معمولاً از HTTP یا HTTPS برای تبادل اطلاعات استفاده میکند.
- REST (Representational State Transfer): نوعی معماری نرمافزاری برای طراحی و استفاده از وبسرویسهاست. سرویسهایی که براساس این معماری ارائه میشوند، RESTful نام دارند.

پس از پردازش درخواست در درگاه پیامکی، پیام برای شمارۀ مقصد ارسال میشود.
وبسرویس ملی پیامک از هر دو روش پشتیبانی میکند.
کاربران میتوانند براساس نیاز پروژه با استفاده از مستندات و نمونهکدهای موجود، قابلیت ارسال پیامک را به سایت یا وباپلیکیشن خود اضافه کنند.
برای استفاده از 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 را بررسی کنید. در صورت غیرفعالبودن، میتوانید از پشتیبانی هاست بخواهید آن را فعال کند یا از ابزار مدیریت سرور و هاست کمک بگیرید.
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 برای ارسال رمز یکبارمصرف در کنسول ملی پیامک بهصورت زیر است:$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);
// }
جمعبندی ارسال پیامک با php
تا اینجا به تمام روشهای ارسال پیامک با php اشاره کردیم و شما تا حدودی با خدمات ارائهشدۀ سامانه ملی پیامک در این زمینه آشنا شدید.
در صورتی که پنل را تهیه کردید و نیاز به مشاورۀ بیشتر داشتید با کارشناسان ملی پیامک 02163404 تماس بگیرید. همچنین در انتهای همین مطلب میتوانید سوالات بیشتر را برای ما و مخاطبان ملی پیامک بنویسید تا به آنها پاسخ دهیم.
![معرفی و مقایسه 21 افزونه ورود و ثبت نام با شماره موبایل در وردپرس [راهنمای کامل]](https://www.melipayamak.com/wp-content/uploads/2026/05/28144-wordpress-verification-plugin-56x56.webp)

![آموزش جامع اتصال نرمافزار هلو به پنل پیامکی [+ارسال پیامک پترن از هلو]](https://www.melipayamak.com/wp-content/uploads/2019/04/connect-holo-software-1-56x56.jpg)

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