این روزها قابلیت ارسال sms با php کاربرد های مختلفی در اپلیکیشن ها تحت وب دارد . برای مثال برای احراز هویت کاربران , تاییدیه OTP و ارسال اطلاعیه ها به کاربران استفاده می شود . برای ارسال sms با php حتما یک سرویس ارایه پیامک پایدار بنا به نیاز خود تهیه کنید . بعد اینکه سرویس دهنده پیامک خود را انتخاب و تهیه کردید ، زمان اون هست تا نحوه ارسال sms با php را یاد بگیریم.
در این آموزش شما یاد میگیرید چطور از API سرویس sms در اسکریپت PHP خود سریع استفاده کنید .استفاده از نمونه کدهای ما شما به راحتی میتوانید از طریق وبسایت خودتان و API سرویس دهنده های پیامک ، SMS ارسال کنید
معمولا ، سرویس دهنده های پیامک ۳ نوع پلن مختلف دارند . یک طرفه ، دوطرفه ، و یا هردو . در پلن یک طرفه شما فقط امکان ارسال پیام را دارید ولی در پلن دو طرفه شما علاوه بر ارسال پیامک ، امکان دریافت پیامک را هم دارید .
اکثرا ، سرویس دهنده های پیامک یک آدرس بازگشتی (callback URL) برای پاس دادن یک سری پارامترها ، مثل API Key ، شماره موبایل منبع ، شماره تلفن مقصد ، محتوای پیامک و غیره… دارند . این پارامتر ها بسته به شرکت سرویس دهنده متفاوت است . بنابر نیاز خود می توانید بعضی پارامتر ها در کد زیر را حذف یا اضافه کنید
کد ارسال SMS در PHP :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//request parameters array $requestParams = array( 'user' => 'netparadis', 'apiKey' => 'dssf645fddfgh565', 'senderID' => 'NETPS', 'receipientno' => 'XXXXXXXXXX', 'message' => 'insert your sms content' ); //merge API url and parameters $apiUrl = "http://api.example.com/http/sendsms?"; // change this foreach($requestParams as $key => $val){ $apiUrl .= $key.'='.urlencode($val).'&'; } $apiUrl = rtrim($apiUrl, "&"); //API call $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch); |
نکته : در اسکریپت ارسال sms با php بالا از کتابخانه cURL استفاده شده . پس مطمین باشید که این قابلیت بر روی سرور شما فعال است (اکثرا فعال است)
امیدوارم از این کد کاربردی در پروژه هایی که می نویسید استفاده کنید . هرگونه مشکلی داشتید لطفا از طریق نظرات این نوشته برامون ارسال کنید مرسی
باسلام
در تکه کد بالا منظور از senderID و apiKey چیه؟
سلام. این اطلاعات رو از خود سرویس دهنده ای که پلن پیامکی میخرید میگیرید
ممنون، عالی بود،کارم راه افتاد.
سلام. شکر
سلام
من میخوام یه وب سرویس رو از طریق 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
امکانش هست راهنمایی بفرمایید
سلام. خب شما کلاس http\Client رو از کجا اوردید ؟ بارگذاری کردید ؟ چون تشخیص نمیده
سلام من یک سایت وردپرسی دارم که ثبت نام کاربران بر اساس sms انجام میشه ولی بقیه نوتیفیکشن ها و اطلاع رسانی ها به ایمیل کاربر ارسال میشه میخام اطلاع رسانی ها هم بر اساس sms باشه.. لطفا راهنمایی کنید چجوری کدهارو ویرایش کنم یا یه منبع خوب بهم معرفی کنید
سلام.
از افزونه های آماده وردپرسی استفاده کنید. در مورد گوگل کنید
برای ووکامرس و نحوه ثبت نام و ورودکاربران افزونه هست ولی برای بقیه نوتیفیکیشن ها مثل زمانی که کاربری مشغول چت با کاربر دیگه ای میشه و باید به اون کاربر خبر داده بشه که پیام جدیدی داره افزونه ای نیست.. لطفا اگر افزونه خاصی میشناسید معرفی کنید ممنونم
با سلام وتشکر از آموزش شما.اگر به جای پانل ازمودم با سیم کارت استفاده کنیم کدها چه تغییری می کنند باتشکر.
توس سوری ی جا نوشتین javascript:void(0) میشه ی توضیحی در موردش بدید
یعنی هیچ اتفاقی نیوفته
https://stackoverflow.com/questions/1291942/what-does-javascriptvoid0-mean
سلام و درود به دیتابیس وصل نمیشه ارور هم نمیده
ولی در نهایت هم پبامکی ارسال نمیکنه.
میشه راهنمایی کنید لطفا
سلام.
داخل پنل پیامکی نمایش میده که ارور و دلیل ارسال چیه اونجا نگاه بندازید
راستش من از پنل خودم استفاده کردم . الان مشکل دیتابیس حل شد ولی نمیفرسته کد رو تو دیتابیس ذخیره هم میکنه .
در سایت پنل, جایی که سرویس رو خریداری کردید اونجا میتونید خطا رو ببینید
پنلش هم عجیب غریبه 😞. امکان اینکه خواهش کنم با هزینه شما نگاهش کنید هست ؟ ممنون میشم
سلام حسن شفیعی عزیز. اگر این کد رو روی هاست قرار بدم می توانم بدون هزینه پیامک ارسال کنم؟؟
سلام. خیر این کد فقط رابط بین شما و سرویس دهنده پیامک است و باید در سرویس دهنده شما یک اکانت با اعتبار داشته باشید تا بتونید پیامک ارسال کنید و به تنهایی کد کارایی ندارد.
البته معمولا با ثبت نام در این سرویس دهنده ها بصورت رایگان چند ده پیامک اولیه را رایگان می دهند که میتونید استفاده کنید.
تشکر استاد
با بررسی ای که کردم به این نتیجه رسیدم که برای حفظ اطلاعات سری میشه از تابع استفاده کرد به اینصورت که با PHP یک واسطه بسازیم.
مثلا شماره کاربر به واسطه ارسال بشه و اون اطلاعات را به سرور سامانه پیامکی ارسال کنه و سپس پاسخ سامانه را بگیرد و در دیتابیس ذخیره کنه و در پایان سایت ما اطلاعات را از دیتابیس دریافت کنه
به اینصورت تمام عملیات مهم پشت پرده انجام میشه .
میشه در این زمینه راهنمایی کنید تا این واسطه رو بسازم.
باز هم تشکر
خواهش می کنم.
همانطور که خدمتتون گفته شد در حالت عادی به این صورت کسی نمیتونه دسترسی به اطلاعات شما یا بین کاربری داشته باشه ولی واسطه همان مفهوم API رو داره که میتونید آموزش های مربوطش رو ببینید
https://netparadis.com/?s=rest
موفق باشید.
سلام علیکم
می خواستم از سرویس احراز هویت پیامکی کاوه نگار استفاده کنم اما یک سوالی برام پیش اومده ممنون میشم توضیح بدید
موقعی که درخواستی برای اجراز هویت کاربری به سرور سامانه ارسال میشه پاسخ آن به شک زیر برمیگردد
{
“return”:
{
“status”:200,
“message”:”تایید شد”
},
“entries”: {
“messageid”:8792343,
“message”: “ممنون از ثبت نام شما کد تایید عضویت : ۸۵۲۵۹۶ “,
“status”:5,
“statustext”:”ارسال به مخابرات”,
“sender”:”10004346″,
“receptor”:”09361234567″,
“date”:1356619709,
“cost”:120
}
}
کافیست هکر یک شماره الکی را برای ثبت نام وارد کند و سپس ورودی و خروجی اپ یا سایت را مانیتور کند تا کد های درخواست و پاسخ را ببیند
لطفا راهنمایی کنید
تشکر
سلام. سعی کنید ایمیل وافعی را وارد کنید در غیر اینصورت بصورت اسپم شناخته میشه و ما هم امکان پاسخگویی سریع و موثر اون رو نداریم. همچنین پاسخ ارسالی برای شما از طریق ایمیل نیز اطلاع داده میشه.
هکر اگر اطلاعات پنل پیامکی شما رو نداشته باشه امکان دریافت این خروجی رو هم نخواهد داشت و در سطح اینترنت این امکان از سمت هکر وجود نداره که بیاد این خروجی رو دریافت کنه. همچنین اگر یک شماره الکی اگر وارد کنید می بینید که خروجی بسیار متفاوت تر از این هستش.
برای امنیت در سطح شبکه و جلوگیری از sniff و mitm هم بهتره از SSL بهره ببرید.
موفق باشید.
بسیارعالی. موفق باشین
سلام
ممنون
آدرس api مربوط به پذیرنده را از کجا پیدا کنم؟
سلام . باید پنل پیامکی خریدارید کنید و با پرداخت وجه حساب رو شارژ کنید . از جستجو ی گوگل استفاده کنید.
موفق باشید.
سلام
من عین همین کد را اجرا کردم،.ولی هیچ اتفاقی نیفتاد
فقط اینجا که مربوط به شماره موبایل هستش را تغییر دادم.
سلام . دوست عزیز باید اطلاعات ورود و آدرس api مربوط به پذیرنده خودتون رو جایگزین و تست کنید.
موفق باشید.
بسیار بسیار عالی بود. استفاده کردم. فقط یه سوال داشتم. متغیر ch که داخل دستورات بالا استفاده شده مخفف چیه؟ واسم سوال پیش اومده چون زیاد دیدم تو دستورات curl استفاده میشه ازش.
خوشحالم که مفید واقع شده . فقط یک اسم متغییر هستش از کلمات cURL Handler که از خروجی که توسط تابع
curl_init()
ایجاد و ذخیره شده برای مقدار دهی و درنهایت اجرای فرایند استفاده می کنیم.موفق باشید.
بسیار عالی, جامع و مفید. موفق باشید.
خواهش می کنم . موفق باشید 🙂