ارسال sms با php

  • آپدیت شده در تاریخ

ارسال sms با php

این روزها قابلیت ارسال sms با php کاربرد های مختلفی در اپلیکیشن ها تحت وب دارد . برای مثال برای احراز هویت کاربران , تاییدیه OTP و ارسال اطلاعیه ها به کاربران استفاده می شود . برای ارسال sms با php حتما یک سرویس ارایه پیامک پایدار بنا به نیاز خود تهیه کنید . بعد اینکه سرویس دهنده پیامک خود را انتخاب و تهیه کردید ، زمان اون هست تا نحوه ارسال sms با php را یاد بگیریم.

در این آموزش شما یاد میگیرید چطور از API سرویس sms  در اسکریپت PHP خود سریع استفاده کنید .استفاده از نمونه کدهای ما شما به راحتی میتوانید از طریق وبسایت خودتان و API سرویس دهنده های پیامک ، SMS ارسال کنید

 

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

ارسال sms با php

اکثرا ، سرویس دهنده های پیامک یک آدرس بازگشتی (callback URL) برای پاس دادن یک سری پارامترها ، مثل API Key ، شماره موبایل منبع ، شماره تلفن مقصد ، محتوای پیامک و غیره… دارند . این پارامتر ها بسته به شرکت سرویس دهنده متفاوت است . بنابر نیاز خود می توانید بعضی پارامتر ها در کد زیر را حذف یا اضافه کنید

 

کد ارسال SMS در PHP :

 

نکته : در اسکریپت ارسال sms با php بالا از کتابخانه cURL استفاده شده . پس مطمین باشید که این قابلیت بر روی سرور شما فعال است (اکثرا فعال است)

 

امیدوارم از این کد کاربردی در پروژه هایی که می نویسید استفاده کنید . هرگونه مشکلی داشتید لطفا از طریق نظرات این نوشته برامون ارسال کنید مرسی

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۳۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. اوا معمارزاده ۵ دی ۱۴۰۲

    باسلام
    در تکه کد بالا منظور از senderID و apiKey چیه؟

    پاسخ
    1. حسن شفیعی ۵ دی ۱۴۰۲

      سلام. این اطلاعات رو از خود سرویس دهنده ای که پلن پیامکی میخرید میگیرید

      پاسخ
  2. احسان ۱۳ دی ۱۴۰۱

    ممنون، عالی بود،کارم راه افتاد.

    پاسخ
    1. حسن شفیعی ۱۳ دی ۱۴۰۱

      سلام. شکر

      پاسخ
  3. حدیث ۱ شهریور ۱۴۰۱

    سلام
    من میخوام یه وب سرویس رو از طریق php صدا کنم که برام ارسال پیام روی واتساپ رو انجام بده.
    کدم:
    $client = new http\Client;
    $request = new http\Client\Request;
    $request->setRequestUrl(‘https://wesender.ir/Send’);
    $request->setRequestMethod(‘POST’);
    $body = new http\Message\Body;
    $body->append(‘{“message” : “Hello world!!!”,”imgBase64″ :
    “data:image/jpeg;base64,/9j/4AAQSkZVBUE4PEFlRpoM4AAwD/2Q==”}’);
    $request->setBody($body);
    $request->setOptions(array());
    $request->setHeaders(array(
    ‘sender’ => ‘989122372850’ ,
    ‘key’ => ‘E8AAC5F492F24D85B688BFA9FDD63509’ ,
    ‘reciverCountryCode’ => ’98’ ,
    ‘reciverNumber’ => ‘9309040670’
    ));
    $client->enqueue($request)->send();
    $response = $client->getResponse();
    echo $response->getBody();

    ولی بهم ارور بر میگردونه
    متن ارور:
    Fatal error: Uncaught Error: Class “http\Client” not found in /home/user/scripts/code.php:2
    Stack trace:
    #۰ {main}
    thrown in /home/user/scripts/code.php on line 2
    امکانش هست راهنمایی بفرمایید

    پاسخ
    1. حسن شفیعی ۲ شهریور ۱۴۰۱

      سلام. خب شما کلاس http\Client رو از کجا اوردید ؟ بارگذاری کردید ؟ چون تشخیص نمیده

      پاسخ
  4. رضا ۶ مهر ۱۴۰۰

    سلام من یک سایت وردپرسی دارم که ثبت نام کاربران بر اساس sms انجام میشه ولی بقیه نوتیفیکشن ها و اطلاع رسانی ها به ایمیل کاربر ارسال میشه میخام اطلاع رسانی ها هم بر اساس sms باشه.. لطفا راهنمایی کنید چجوری کدهارو ویرایش کنم یا یه منبع خوب بهم معرفی کنید

    پاسخ
    1. حسن شفیعی ۶ مهر ۱۴۰۰

      سلام.
      از افزونه های آماده وردپرسی استفاده کنید. در مورد گوگل کنید

      پاسخ
      1. رضا ۶ مهر ۱۴۰۰

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

        پاسخ
  5. هدایت ۱۵ اردیبهشت ۱۴۰۰

    با سلام وتشکر از آموزش شما.اگر به جای پانل ازمودم با سیم کارت استفاده کنیم کدها چه تغییری می کنند باتشکر.

    پاسخ
  6. پدرام ۱۹ بهمن ۱۳۹۹

    توس سوری ی جا نوشتین javascript:void(0) میشه ی توضیحی در موردش بدید

    پاسخ
    1. حسن شفیعی ۱۹ بهمن ۱۳۹۹
  7. پدرام ۱۹ بهمن ۱۳۹۹

    سلام و درود به دیتابیس وصل نمیشه ارور هم نمیده
    ولی در نهایت هم پبامکی ارسال نمیکنه.
    میشه راهنمایی کنید لطفا

    پاسخ
    1. حسن شفیعی ۱۹ بهمن ۱۳۹۹

      سلام.
      داخل پنل پیامکی نمایش میده که ارور و دلیل ارسال چیه اونجا نگاه بندازید

      پاسخ
      1. پدرام ۱۹ بهمن ۱۳۹۹

        راستش من از پنل خودم استفاده کردم . الان مشکل دیتابیس حل شد ولی نمیفرسته کد رو تو دیتابیس ذخیره هم میکنه .

        پاسخ
      2. حسن شفیعی ۱۹ بهمن ۱۳۹۹

        در سایت پنل, جایی که سرویس رو خریداری کردید اونجا میتونید خطا رو ببینید

        پاسخ
      3. پدرام ۱۹ بهمن ۱۳۹۹

        پنلش هم عجیب غریبه 😞. امکان اینکه خواهش کنم با هزینه شما نگاهش کنید هست ؟ ممنون میشم

        پاسخ
  8. Ali ۱۵ تیر ۱۳۹۹

    سلام حسن شفیعی عزیز. اگر این کد رو روی هاست قرار بدم می توانم بدون هزینه پیامک ارسال کنم؟؟

    پاسخ
    1. حسن شفیعی ۱۵ تیر ۱۳۹۹

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

      پاسخ
  9. علی ۶ دی ۱۳۹۷

    تشکر استاد
    با بررسی ای که کردم به این نتیجه رسیدم که برای حفظ اطلاعات سری میشه از تابع استفاده کرد به اینصورت که با PHP یک واسطه بسازیم.
    مثلا شماره کاربر به واسطه ارسال بشه و اون اطلاعات را به سرور سامانه پیامکی ارسال کنه و سپس پاسخ سامانه را بگیرد و در دیتابیس ذخیره کنه و در پایان سایت ما اطلاعات را از دیتابیس دریافت کنه
    به اینصورت تمام عملیات مهم پشت پرده انجام میشه .

    میشه در این زمینه راهنمایی کنید تا این واسطه رو بسازم.
    باز هم تشکر

    پاسخ
    1. حسن شفیعی ۶ دی ۱۳۹۷

      خواهش می کنم.
      همانطور که خدمتتون گفته شد در حالت عادی به این صورت کسی نمیتونه دسترسی به اطلاعات شما یا بین کاربری داشته باشه ولی واسطه همان مفهوم API رو داره که میتونید آموزش های مربوطش رو ببینید
      https://netparadis.com/?s=rest
      موفق باشید.

      پاسخ
  10. علی ۶ دی ۱۳۹۷

    سلام علیکم
    می خواستم از سرویس احراز هویت پیامکی کاوه نگار استفاده کنم اما یک سوالی برام پیش اومده ممنون میشم توضیح بدید
    موقعی که درخواستی برای اجراز هویت کاربری به سرور سامانه ارسال میشه پاسخ آن به شک زیر برمیگردد

    {
    “return”:
    {
    “status”:200,
    “message”:”تایید شد”
    },
    “entries”: {
    “messageid”:8792343,
    “message”: “ممنون از ثبت نام شما کد تایید عضویت : ۸۵۲۵۹۶ “,
    “status”:5,
    “statustext”:”ارسال به مخابرات”,
    “sender”:”10004346″,
    “receptor”:”09361234567″,
    “date”:1356619709,
    “cost”:120
    }

    }

    کافیست هکر یک شماره الکی را برای ثبت نام وارد کند و سپس ورودی و خروجی اپ یا سایت را مانیتور کند تا کد های درخواست و پاسخ را ببیند

    لطفا راهنمایی کنید
    تشکر

    پاسخ
    1. حسن شفیعی ۶ دی ۱۳۹۷

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

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

      برای امنیت در سطح شبکه و جلوگیری از sniff و mitm هم بهتره از SSL بهره ببرید.

      موفق باشید.

      پاسخ
  11. مسعود ۲۱ مهر ۱۳۹۷

    بسیارعالی. موفق باشین

    پاسخ
  12. خادم ۲ تیر ۱۳۹۷

    سلام
    ممنون
    آدرس api مربوط به پذیرنده را از کجا پیدا کنم؟

    پاسخ
    1. حسن شفیعی ۳ تیر ۱۳۹۷

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

      پاسخ
  13. خادم ۲ تیر ۱۳۹۷

    سلام
    من عین همین کد را اجرا کردم،.ولی هیچ اتفاقی نیفتاد
    فقط اینجا که مربوط به شماره موبایل هستش را تغییر دادم.

    پاسخ
    1. حسن شفیعی ۲ تیر ۱۳۹۷

      سلام . دوست عزیز باید اطلاعات ورود و آدرس api مربوط به پذیرنده خودتون رو جایگزین و تست کنید.
      موفق باشید.

      پاسخ
  14. عرفان زیده سرایی ۲۷ خرداد ۱۳۹۷

    بسیار بسیار عالی بود. استفاده کردم. فقط یه سوال داشتم. متغیر ch که داخل دستورات بالا استفاده شده مخفف چیه؟ واسم سوال پیش اومده چون زیاد دیدم تو دستورات curl استفاده میشه ازش.

    پاسخ
    1. حسن شفیعی ۲۷ خرداد ۱۳۹۷

      خوشحالم که مفید واقع شده . فقط یک اسم متغییر هستش از کلمات cURL Handler که از خروجی که توسط تابع curl_init() ایجاد و ذخیره شده برای مقدار دهی و درنهایت اجرای فرایند استفاده می کنیم.

      موفق باشید.

      پاسخ
  15. بنفشه محمدیان ۳۱ شهریور ۱۳۹۶

    بسیار عالی, جامع و مفید. موفق باشید.

    پاسخ
    1. حسن شفیعی ۳۱ شهریور ۱۳۹۶

      خواهش می کنم . موفق باشید 🙂

      پاسخ
دوره های آموزشی