ارسال SMS سمت سرور به کاربران سایت با PHP بدون خط خدماتی!

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

اما اول از همه سوال اینه که خط خدماتی به چی میگن؟

قبلنا که انقد سرویسهای ارزش افزوده فراگیر نبود و دم به دقیقه SMS برامون نمیومد، کافی بود یه پنل پیامکی رو با یه هزینه ناچیز بخرید و بعد شارژش کنید و بعدشم به هر تعداد شماره ای که توی دیتابیس داشتین پیامک (از هر نوعی) بفرستید و از بابت دریافت صد در صدی اسمس به مخاطبمتون هم خیالتون راحت باشه!

همین سادگی روند قبلی باعث سوء‌استفاده از این سرویس شد و این روزها بخاطر مزاحمتهای فراوان از سمت اسپمرهایی که مدام پیامک تبلیغاتی و پیشنهاد به عضویت در فلان سرویس و بهمان سرویس می‌کنند، همه اپراتورها گزینه هایی رو در اختیار کاربراشون قرار دادن که میتونن دریافت پیام تبلیغاتی روی خطوط موبایلشون رو با شماره گیری *800# براحتی مسدود کنن و اینجوری اگر شما فرضا 1000 مشتری داشته باشید احتمال اینکه بالای 70% اونها گزینه عدم دریافت پیام تبلیغاتی رو فعال کرده باشن هست و اطلاع رسانیهاتون عملا ناقص میشه و پیامکهاتون به یوزرها با احتمال خیلی بالا نمیرسه.

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

در حال حاضر برای دریافت یک خط خدماتی مدارک زیادی گرفته میشه (از جمله سفته، تعهدنامه، گواهی امضاء و ...) که می‌تونید در موردش سرچ بزنید و البته جدیدا فکر میکنم فقط به شرکتها داده میشه (!!) و این قوانینن باعث شده کار برای بیزینسهای شخصی و استارتاپها که عموما شرکت ثبت شده ای ندارند سخت بشه؛ اینجاست که سرویس اعتبارسنجی شرکت کاوه نگار به داد اشخاص و بیزنسهای غیرشرکتی و شاید هم شرکتی میرسه که درموردش در ادامه بیشتر توضیح خواهم داد.

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

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

کاوه نگار یکجورهایی اومده برای خطوط خدماتی خودش API تعریف کرده و در اختیار بقیه قرار داده. توی این سرویس شما فقط قادر به ارسال پیامکهایی هستید که متنهاشون ثابت باشه و تایید شده باشند. خودشون اسم این سرویس رو گذاشتن "اعتبارسنجی" و مثلا می‌تونید همچین متنی رو برای کاربرها بعد از تعریف یک الگو به شکل زیر ارسال کنید:

کاربر %token؛ از اینکه به جمع اعضای وبسایت ویرگول پیوستید مفتخریم.

بجای %token میتونید از طریق برنامه نویسی هرچیزی بذارید و ارسال کنید به API و مطمئن باشید که به دست فرد مورد نظر خواهد رسید.

در حال حاضر اجازه تعریف سه تا متغیر توی متن ثابت (الگو) داده میشه. مثل متن زیر:

کاربر %token. امتیاز شما در مدت %token2 برابر است با: %token3

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

برای اینکه بتونید از این سرویس استفاده کنید اول باید عضو سایت کاوه‌نگار بشید. بعد متاسفانه برای استفاده از سرویس اعتبارسنجی (تا زمان نوشتن این مطلب) مجبورید سرویستون رو ارتقاء بدید به یکی از موارد پیشرفته یا فوق‌پیشرفته با مبالغ 150 و 300 هزارتومن در سال.

و بعد از انجام اینکار گزینه ای توی پنل مدیریتی در اختیارتون قرار میگیره با عنوان "اعتبارسنجی".

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

من توی یکی از پروژه هام از این سرویس استفاده کردم که کدهای بخش ارسال اسمس رو براتون میذارم توی آدرس زیر:

https://gist.github.com/Mohsen322/fb682b4310b8cdc5e0c66e54469a6f61

نحوه ارسال اس.ام.اس بوسیله الگوی اعتبارسنجی از طریق کلاس بالا به شکل زیر هستش:

توی پیام زیر اسم الگوی من "tempPassword " بود و متنش هم " رمزعبور جدید شما: %token لطفا پس از ورود رمز را تغییر دهید."

            //send Template SMS
                $fields = array(
                    'receptor' => $mobile,
                    'template' => ' tempPassword ',
                    'token' => [$name]
                );
                $sms_ptr = new SmsController();
                $sms_ptr->sendTemplateSms($fields);

برای ارسال پیامک با توکنهای بیشتر کافیه آرایه token رو تا سه مقدار، مقداردهی کنید به شکل زیر:

'token' => [$name, $family]

'token' => [$name, $family, $point]

امیدوارم مفید بوده باشه.