راهنمای استفاده از وب سرویس اس ام اس برتر
از آنجا که سرویس وب پیام کوتاه اس ام اس برتر در حال تکمیل و افزایش امکانات است، این مستند دستخوش تغییراتی خواهد شد. لذا مراجعه مجدد به این مستند به برنامه نویسان محترم، پیشنهاد می شود.
نسخه | تاریخ نگارش |
---|---|
۰.۶ | 1390/12/20 |
۰.۷ | 1391/08/28 |
۰.۷۵ | 1391/12/12 |
۱.۰ | 1392/10/22 |
۱.۱ | 1394/02/24 |
مقدمه
این مستند بعنوان راهنمای استفاده از سرویس وب پیام کوتاه اس ام اس برتر می باشد و مخاطب آن برنامه نویسانی هستند که آشنا به مفاهیم تکنولوژی SOAP بوده و نحوه ایجاد یک SOAP Client را با زبانی که مسلط به آن هستند بدانند. البته مثالهای کاربردی با زبان PHP در انتهای مستند ارائه شده است. اس ام اس برتر خود را موظف به ارائه صحیح سرویس وب می داند و هیچ تعهدی برای نصب، پیکربندی و راه اندازی SOAP Client بر روی سرویس دهنده های دیگر ندارد و در صورت نیاز مشتری طبق قرارداد جداگانه قابل انجام است.
نحوه عضویت
جهت استفاده از این سرویس وب ابتدا باید درخواست خود را از طریق صفحه مربوطه در وب سایت اس ام اس برتر تنظیم و ارسال کنید. بر اساس درخواست شما یک یا چند شماره به حساب شما تخصیص داده می شود که از میان آنها یکی بصورت شماره پیش فرض (Default) انتخاب می شود. با استفاده از شناسه کاربری و رمز عبوری که در فرم ثبت نام وارد می کنید، پس از شارژ اعتبار و فعالسازی حساب شما توسط مدیر سیستم، اجازه استفاده از سرویس وب را خواهید داشت که در ادامه به معرفی متدهای سرویس وب، پارامترهای ورودی و خروجی آنها، کدهای خطا و کدهای وضعیت پیام کوتاه می پردازیم.
تعاریف
برای هر پیام کوتاه که ارسال می کنید، یک کد پیگیری منحصر به فرد باز گردانده می شود که بوسیله آن می توانید از وضعیت تحویل (Delivery) پیام کوتاه اطلاع کسب کنید. در سرویس وب پیام کوتاه اس ام اس برتر، این کد عددی بالای ١٠٠٠ است.
کد پیغام خطا
در صورت بروز خطا مثلا عدم دسترسی به بانک اطلاعاتی، سوئیچ مخابرات و یا بروز خطا در اعتبارسنجی پارامترهای ارسال شده در فراخوانی عملیاتهای سرویس وب، یک آبجکت SoapFault بازگردانده می شود که دو خصیصه (Property) آن به نام faultcode و faultstring آن دارای مقدار است که به ترتیب کد خطا (برای نمایش خطاهای سفارشی شده توسط برنامه نویس) و دیگری توضیح قابل فهم خطا می باشد که در جدول یک شرح آنها آمده است. در حال حاضر کد خطا عددی بین ١ تا ٢٠ است.
کد وضعیت تحویل پیام کوتاه
این کد وضعیت تحویل (Delivery) پیام کوتاه را در لحظه درخواست مشخص می کند که شرح آنها در جدول دو آمده است.
آدرس انتقال ترافیک (Traffic Relay)
وقتی پیام کوتاهی به هر یک از شماره های تخصیص یافته شما ارسال می شود، پس از تایید صحت شماره، اطلاعات پیام کوتاه که شامل شماره فرستنده، متن پیام، شماره شما و کد امنیتی می باشد به آدرس اینترنتی (URL) که مشخص کرده اید بصورت POST ارسال می شود. جهت اطمینان از اینکه درخواست از طرف سرویس دهنده اس ام اس برتر ارسال شده می توانید از کد امنیتی همراه پیام استفاده کنید. بدین صورت که با فراخوانی عملیات verifyReceive از سرویس وب و ارسال کد امنیتی یک پاسخ از نوع منطقی (Boolean) دریافت می کنید که True به معنای صحت پیام و False به معنای عدم صحت پیام است. البته موارد دیگری نیز جهت اطمینان از صحت پیام وجود دارد که با بررسی بیشتر نوع درخواست ارسالی توسط سرویس دهنده اس ام اس برتر قابل پیاده سازی توسط برنامه نویس می باشد.
آدرس سرویس وب
با مراجعه به آدرس sms.sms-bartar.com/webservice شرح مختصری در مورد عملیات پشتیبانی شده توسط سرویس وب پیام کوتاه اس ام اس برتر و نوع پارامترهای ورودی و خروجی آنها مشاهده می کنید.
آدرس WSDL سرویس وب پیام کوتاه اس ام اس برتر: http://sms.sms-bartar.com/webservice/?WSDL
عملیاتها و پارامترها
متد send
جهت ارسال یک پیام کوتاه از این متد استفاده می شود. در جدول زیر پارامترهای ورودی این متد آورده شده است. مقدار بازگشتی این متد “کد پیگیری پیام کوتاه” می باشد که از نوع عدد صحیح و بزرگتر مساوی ١٠٠٠ است. در صورت بروز هر گونه خطایی یک Fault بازگشت داده می شود که در بخش تعاریف به توضیح آن پرداختیم.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
to | String | اجباری | شماره گیرنده پیام کوتاه (مثال 09123456789) |
msg | String | اجباری | متن پیام کوتاه (رشته کاراکتری با طول حداکثر ١٦٠ کاراکتر برای حروف لاتین و حداکثر ٧٠ کاراکتر برای حروف فارسی) |
from | String | اختیاری | شماره فرستنده پیام کوتاه (در صورت خالی گذاشتن این پارامتر پیام کوتاه از شماره پیش فرض حساب ارسال می شود) |
time | Int | اختیاری | زمان بر حسب Unix Timestamp به وقت تهران (در صورتی که بخواهید پیام کوتاه در آینده ارسال شود. در صورت خالی گذاشتن این پارامتر زمان جاری در نظر گرفته میشود.) |
نام پارامتر | توضیح |
---|---|
Int | کد پیگیری وضعیت تحویل پیام کوتاه |
جهت ارسال یک پیام کوتاه به چندین مخاطب از این متد استفاده می شود. در جدول زیر پارامترهای ورودی این متد آورده شده است. مقدار بازگشتی این متد آرایهای است که کلید هر عنصر آن «شماره موبایل مخاطب» و مقدار آن کلید، “کد پیگیری پیام کوتاه” می باشد که از نوع عدد صحیح و بزرگتر مساوی ١٠٠٠ است. در صورت بروز خطا در حین ارسال به هر مخاطب، کد خطا بعنوان مقدار کلید برای همان شماره بازگشت داده میشود و در صورت بروز خطاهای کلیتر یک Fault بازگشت داده می شود که در بخش تعاریف به توضیح آن پرداختیم. بنابراین برنامهنویس محترم میبایست پس از دریافت پاسخ این متد، آرایه را پیمونده و مقدار هر کلید(شماره موبایل) را از نظر بروز خطا بررسی کند. مجددا تاکید میکنیم خطا در ارسال به یک مخاطب فقط برای همان مخاطب گزارش میشود و سایر شمارهها پردازش خواهند شد.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
to | Array of String | اجباری | آرایهای از رشته کاراکتر که هر عنصر حاوی شماره موبایل با فرمت 09123456789 میباشد |
msg | String | اجباری | متن پیام کوتاه (رشته کاراکتری با طول حداکثر ١٦٠ کاراکتر برای حروف لاتین و حداکثر ٧٠ کاراکتر برای حروف فارسی) |
from | String | اختیاری | شماره فرستنده پیام کوتاه (در صورت خالی گذاشتن این پارامتر پیام کوتاه از شماره پیش فرض حساب ارسال می شود) |
time | Int | اختیاری | زمان بر حسب Unix Timestamp به وقت تهران (در صورتی که بخواهید پیام کوتاه در آینده ارسال شود. در صورت خالی گذاشتن این پارامتر زمان جاری در نظر گرفته میشود.) |
نام پارامتر | توضیح |
---|---|
Array of Int | آرایهای که هر کلید آن شماره موبایل و مقدار کلید کد پیگیری وضعیت تحویل پیام کوتاه است. |
جهت ارسال یک پیام کوتاه به یک مخاطب بصورت نظیر به نظیر از این متد استفاده می شود. در جدول زیر پارامترهای ورودی این متد آورده شده است. مقدار بازگشتی این متد آرایهای است عددی که مقدار هر عنصر آن شامل “کد پیگیری پیام کوتاه” می باشد که از نوع عدد صحیح و بزرگتر مساوی ١٠٠٠ است. در صورت بروز خطا در حین ارسال به هر مخاطب، کد خطابازگشت داده میشود و در صورت بروز خطاهای کلیتر یک Fault بازگشت داده می شود که در بخش تعاریف به توضیح آن پرداختیم. بنابراین برنامهنویس محترم میبایست پس از دریافت پاسخ این متد، آرایه را پیمونده و مقدار هر عنصر را از نظر بروز خطا بررسی کند. کلیدهای این آرایه نیز عددی بوده و دقیقا متناظر با ترتیب پارامترهای ارسالی میباشد. مجددا تاکید میکنیم خطا در ارسال به یک مخاطب فقط برای همان مخاطب گزارش میشود و سایر شمارهها پردازش خواهند شد. در حال حاضر در هر بار فراخوانی این متد حداکثر ۲۰۰ شماره قابل قبول میباشد.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
to | Array of String | اجباری | آرایهای از رشته کاراکتر که هر عنصر حاوی شماره موبایل با فرمت 09123456789 میباشد |
msg | Array of String | اجباری | آرایهای از متن پیام کوتاه (رشته کاراکتری با طول حداکثر ١٦٠ کاراکتر برای حروف لاتین و حداکثر ٧٠ کاراکتر برای حروف فارسی) |
from | Array of String | اختیاری | آرایهای از شماره فرستنده پیام کوتاه (در صورت خالی گذاشتن این پارامتر پیام کوتاه از شماره پیش فرض حساب ارسال می شود) |
time | Array of Int | اختیاری | آرایهای از زمان بر حسب Unix Timestamp به وقت تهران (در صورتی که بخواهید پیام کوتاه در آینده ارسال شود. در صورت خالی گذاشتن این پارامتر زمان جاری در نظر گرفته میشود.) |
نام پارامتر | توضیح |
---|---|
Array of Int | آرایهای که متناظرا با ترتیب پارامترهای ارسالی میباشد و مقدار هر عنصر کد پیگیری وضعیت تحویل پیام کوتاه است. |
جهت بررسی وضعیت تحویل یک پیام کوتاه از این متد استفاده می شود. تنها ورودی آن “کد پیگیری پیام کوتاه” است. مقدار بازگشتی این متد “کد وضعیت تحویل پیام کوتاه” می باشد که از نوع عدد صحیح بوده و شرح هر یک در جدول ٢ آمده است.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
messageIdentifier | Int | اجباری | کد پیگیری پیام کوتاه |
نام پارامتر | توضیح |
---|---|
Int | کد وضعیت تحویل پیام کوتاه |
جهت بررسی صحت پیام کوتاه دریافتی از سرویس دهنده اس ام اس برتر از این متد استفاده می شود. تنها ورودی آن “کد امنیتی پیام کوتاه” است که همراه با سایر اطلاعات پیام کوتاه به آدرس اینترنتی انتقال ترافیک شما ارسال می شود. مقدار بازگشتی این متد نوع Boolean می باشد که True به معنای صحت پیام دریافتی و False به معنای عدم صحت پیام دریافتی است.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
securityCode | String | اجباری | کد امنیتی پیام کوتاه |
نام پارامتر | توضیح |
---|---|
Boolean | مقدار True صحت پیام دریافتی و مقدار False عدم صحت پیام دریافتی است |
برای دریافت اطلاعات حساب در اس ام اس برتر از این متد استفاده می شود. این متد هیچ ورودی ندارد. خروجی آن یک آبجکت است که شرح خصیصه های (Property) آن در جدول زیر آمده است.
نام خصیصه | نوع خصیصه | توضیح |
---|---|---|
numbers | Array of String | آرایه ای از رشته کاراکترها که شماره های اختصاص یافته به حساب است |
receiveUrl | String | آدرس انتقال ترافیک جهت ارسال پیام کوتاه های ارسالی به شماره (های) اختصاص یافته |
sent | Int | تعداد کل پیام کوتاه های ارسالی |
received | Int | تعداد کل پیام کوتاه های دریافتی |
total | Int | تعداد اعتبار پیام کوتاه اختصاص یافته |
remaining | Int | تعداد اعتبار باقیمانده |
برای تغییر رمز عبور حساب از این متد استفاده می شود. ورودی آن رمز عبور جدید است و در صورت انجام صحیح عملیات هیچ خروجی تولید نمی شود. در صورت بروز هر گونه خطایی یک Fault بازگشت داده می شود و عملیات انجام نمی پذیرد.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
newPassword | String | اجباری | رمزعبور جدید |
برای تغییر آدرس اینترنتی انتقال ترافیک از این متد استفاده می شود. ورودی آن URL جدید است که باید بصورت کامل وارد شود نظیر (http://example.com/smsreceiver.php) و در صورت انجام صحیح عملیات هیچ خروجی تولید نمی شود. در صورت بروز هر گونه خطایی یک Fault بازگشت داده می شود و عملیات انجام نمی پذیرد.
نام پارامتر | نوع پارامتر | اجباری/اختیاری | توضیح |
---|---|---|---|
newURL | String | اجباری | آدرس انتقال ترافیک جدید |
جدول ١ – شرح کدهای خطا
کد خطا | توضیح خطا |
---|---|
١ | نام کاربری یا رمز عبور صحیح نیست |
٢ | اعتبار حساب کافی نیست |
٣ | حساب کاربر فعال نیست |
٤ | شماره گیرنده خالی است |
٥ | شماره گیرنده معتبر نیست |
٦ | شماره فرستنده معتبر نیست |
٧ | هیچ شماره ای به حساب شما اختصاص نیافته است |
٨ | متن پیام خالی است |
٩ | متن پیام طولانی است |
١٠ | خطا در سرویس دهنده |
١١ | خطا در برقراری ارتباط با سوئیچ مخابرات |
١٢ | شناسه پیام نامعتبر است |
١٣ | آدرس انتقال ترافیک معتبر نیست |
١٤ | رمز عبور خالی است |
١٥ | شما حق دسترسی به این ماژول را ندارید |
١٦ | این ماژول در حال حاضر قابل استفاده نیست |
١٧ | این ماژول برای شما غیرفعال شده است |
١٨ | مهلت استفاده از این ماژول خاتمه یافته است |
١٩ | مهلت استفاده از این شماره خاتمه یافته است |
٢٠ | این شماره برای شما غیرفعال شده است |
٢١ | تعداد پارامترها در ارسال نظیر به نظیر یکسان نیست |
٢٢ | تعداد مخاطبین بیش از حد مجاز است |
جدول ٢ – شرح کدهای وضعیت تحویل پیام کوتاه
کد خطا | توضیح خطا |
---|---|
٠ | ارسال شده به مخابرات |
١ | رسیده به گوشی |
٢ | نرسیده به گوشی |
٤ | در صف ارسال |
٨ | رسیده به مخابرات |
١٦ | نرسیده به مخابرات |
٣٢ | بلک لیست |
نمونه کدها
نحوه ارسال یک پیام کوتاه، بررسی وضعیت تحویل پیام کوتاه و مشاهده اطلاعات حساب:
$options = array(
‘login’ => ‘yourusername’,
‘password’ => ‘yourpassword’
);
$client = new SoapClient(‘http://sms.sms-bartar.com/webservice/?WSDL’, $options);
try
{
$messageId = $client->send(‘٠٩١١١١١١١١١’, ‘تست پیام کوتاه!’);
sleep(٣);
print ($client->deliveryStatus($messageId));
var_dump($client->accountInfo());
}
catch (SoapFault $sf)
{
print $sf->faultcode.”\n”;
print $sf->faultstring.”\n”;
}