مقدمه
مستند حاضر برای استفاده برنامه نویسانی طراحی شده است که می خواهند توسط برنامه خود نسبت به ارسال و دریافت پیامک بر بستر وب با استفاده از پروتکل SOAP اقدام نمایند. این وب سرویس امکاناتی از قبیل :
- ارسال پیامک تکی و آرایه ای(چند تایی)
- دریافت پیامک رسیده به خط پیامک
- بررسی اعتبار خط پیامک و ...
را در اختیار شما قرار می دهد.
نکته 1: توجه داشته باشید که کلمه عبور وب سرویس شما عبارتی غیر از کلمه عبور پنل پیامکی شما بوده و لازم است خودتان آن را انتخاب نمایید.
مراحل کار:
- مرحله اول: ورود به پنل پیامک نگین
- مرحله دوم: ورود به بخش خدمات برنامه نویسان (از منوی سمت راست)
- مرحله دوم: ورود به بخش خدمات برنامه نویسان (از منوی سمت راست)
آدرس وب سرویس
(بنابر تشخیص خود، یکی از دو آدرس زیر را انتخاب نمایید)
https://sms.3300.ir/almassms.asmx
httpss://sms.3300.ir/almassms.asmx
جهت مشاهده لیست توابع وب سرویس وارد این صفحه شوید:
https://sms.3300.ir/almassms.asmx?wsdl
تعاریف
ارسال پیام به صورت نظیر به نظیر : در این حالت تمام پارامترهای متد باید دارای آرایهای هم سایز و متناظر با آرایه پارامتر شماره دریافت کنندگان باشد. در این صورت میتوان SMS های گوناگونی به گیرندگان ارسال نمود.
ارسال پیام به صورت یک به چند (بالک):
این حالت تمام پارامترهای متد به جز پارامتر شماره دریافت کنندگان باید دارای آرایهای به طول یک باشد. در این صورت یک متن واحد برای چندین نفر (شماره گیرنده) فرستاده میشود.
شماره فرستنده :
هر حساب میتواند شمارههای گوناگونی برای ارسال پیام کوتاه در اختیار داشته باشد و SMSهای خود را با هریک از آن شمارهها ارسال کند.
طول استاندارد پیامک:
سایز استاندارد پیامک 140 بایت میباشد. در صورتی که در متن پیامک از کاراکترهای Alphanumeric استفاده شود طول یک پیامک حداکثرمیتواند 160 کاراکتر، و در صورتی که از Unicode دو بایتی (کاراکترهای فارسی) استفاده شود طول استاندارد آن 65 و طول حداکثر پیامک (پیامک اول) 70 کاراکتر میتواند باشد.
Encodings:
عددی از نوع Integer است که برای مشخص کردن urlEncode پیام بکار میرود. مقادیر مجاز برای این پارامتر 1 ، 2 ، 5 یا 6 میباشد.
- عدد یک برای حالتی است که متن پیام حاوی کاراکترهای لاتین(ISO-8859-1) باشد.
- عدد دو برای حالتی که متن پیام حاوی کاراکترهای فارسی (UTF-8) باشد.
- عدد پنج برای حالتی که متن پیام حاوی Data (8-BIT) مانند ملودی باشد.
- عدد شش برای حالاتی متن پیام باینری (BINARY) باشد.
مثال: اگر متن پیام شامل کاراکترهای خاص باشد باید از این encoding استفاده نمایید.
UDH :
رشته کدی است که برای اضافه کردن حالات خاص و گسترش قابلیت پیامک بکار میرود. در زیر به چند نمونه از این قابلیت ها اشاره میشود:
- Application Port Addressing: ارسال پیامک به گونه ای که گیرنده آن را بر روی پورت خاصی دریافت کند. این قابلیت برای نرمافزارهای مبتنی بر موبایل کاربرد دارد.
- EMS (Enhanced Message Service: ارسال عکس، صدا و ... از طریق پیامک و همچنین فرمت دادن به متن پیام های ارسالی مانند: ایتالیک، بولد و ...
Message-class:
با تنظیم این پارامتر میتوان نحوه دریافت پیامک روی گوشی گیرنده را به دلخواه تغییر داد، مقادیر قابل قبول برای این پارامتر چهار عدد 0، 1، 2 و 3 میباشد.
- 0 : پیامک بصورت مستقیم به روی صفحة موبایل شخص گیرنده فرستاده میشود. در این حالت پیامک در موبایل یا سیم کارت شخص گیرنده بصورت اتوماتیک ذخیره نمیشود.
- 1 : پیامک در حافظة موبایل شخص گیرنده ذخیره میشود.
- 2 : پیامک برروی حافظة سیم کارت شخص گیرنده ذخیره میشود.
- 3 : در صورتی که موبایل شخص گیرنده دارای یک نرمافزار کاربردی خاص برای ذخیره پیامک باشد و یا به یک نرمافزار کاربردی خاص بر روی یک کامپیوتر متصل باشد، پیامک دریافتی در آن نرم افزارها ذخیره میشود.
شماره پیامک:
وب سرویس نگین ارتباط به ازای هر درخواست ارسال پیامک که از کاربران دریافت می کند یک شناسه یکتا به آنها بر میگرداند و کاربران میتوانند با استفاده از آن شناسه وضعیت ارسال پیامک خود را پیگیری کنند.
در صورتی که این شماره پیامک کمتر از 1000 باشد کد خطا بوده و هزینه ارسال آن از اعتبار کاربر کسر نخواهد شد. شرح مقادیر کدهای خطا در جدول زیر آمده است:
کد وضعیت پیامک
کدهای وضعیت ارسال به شرح ذیل میباشد.
- کد 1- : ارسال نشده
- کد 1: گیرنده، پیام ارسالی را دریافت کرده است.
- کد 2: گیرنده، پیام ارسالی را دریافت نکرده است و پیام fail شده است و در صورت نیاز برنامه سمت مشتری میتواند مجدداً عملیات ارسال را تکرار نماید.
- کد 8: مخابرات، پیام ارسالی را دریافت کرده است.
- کد 16: مخابرات، پیام ارسالی را دریافت نکرده است. و در صورت نیاز برنامه سمت مشتری میتواند مجدداً عملیات ارسال را تکرار نماید.
مقادیر بازگشتی در فراخوانی توابع
کلیه متد های وب سرویس یک عدد را در خروجی خود بر می گردانند.
این عدد به برنامه نویس می گوید آیا متد به درستی اجرا شده است یا خیر.
معنی مقادیر بازگشتی توسط متد ها در جدول زیر خلاصه شده است:
کد خطا |
شرح |
2- (عدد منفی) |
متد با موفقیت اجرا شده است |
0 |
اجرای سرویس با خطای غیر منتظره (Exception) مواجه شده است.لطفا پارامتر های خود را چک نمایید |
14 |
اعتبار ریالی کافی برای اجرای متد وجود ندارد |
18 |
نام کاربری و یا کلمه عبور اشتباه است. (نکته1 از مقدمه همین راهنما را ملاحظه کنید) |
20 |
شناسه پیامک اشتباه است |
100 |
طول آرایه ENCODING اشتباه است |
101 |
طول آرایه MESSAGE اشتباه است |
102 |
طول آرایه اشتباه MCLASS است |
103 |
طول آرایه MOBILES اشتباه است |
104 |
طول آرایه UDH اشتباه است |
لیست توابع پرکاربرد
SendSms (برای ارسال پیامک)
نحوه فراخوانی
public long SendSms(string pUsername, string pPassword, string[] messages, string[] mobiles , out long[] pMessageIds)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
- Messages: آرایه ای از متن پیامکها
- Mobiles: آرایه ای از شماره های همراه دریافت کننده پیامک
پارامترهای خروجی
pMessageIds: آرایه ای از شناسه های پیام
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
SendSms2 (برای ارسال پیامک)
نحوه فراخوانی
public long SendSms2(string pUsername, string pPassword, string[] messages, string[] mobiles, string[] UDH, int[] encodings,int[] mclass, out long[] pMessageIds)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
- Messages: آرایه ای از متن پیامکها
- Mobiles: آرایه ای از شماره های همراه دریافت کننده پیامک
- UDH
- Encodings
- mClass
پارامترهای خروجی
pMessageIds: آرایه ای از شناسه های پیام
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
GetMessageStatus2 (برای دریافت وضعیت پیامک ها)
نحوه فراخوانی
public long GetMessageStatus2(string pUsername, string pPassword, long[] pMessageIds, out int[] pStatuses, out long[] pMsgIds)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
- Messages: آرایه ای از متن پیامکها
پارامترهای خروجی
- pStatuses: آرایه ای از وضعیت مخابرات مربوط به شناسه های پیام
- pMsgIds: آرایه شناسه های پیام متناظر با ارایه وضعیتها
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
GetReceivedSms2 (برای دریافت پیامک های دریافت شده)
نحوه فراخوانی
public long GetReceivedSms2(string pUsername, string pPassword, out string pMessages, out string pFroms, out string pSmsc, out string pMessageIds, out DateTime pEnteredDate)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
پارامترهای خروجی
- pMessages
- pFroms
- pSmsc
- pMessageIds
- pEnteredDate
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
ChangePassword (برای تغییر کلمه عبور)
نحوه فراخوانی
public int ChangePassword(string pUsername, string pPassword, string pNewPassword)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
- pNewPassword: کلمه عبور جدید
پارامترهای خروجی
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
GetCredit (برای دریافت میزان اعتبار باقیمانده)
نحوه فراخوانی
public long GetCredit(string pUsername, string pPassword, out long pCredit)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
پارامترهای خروجی
pCredit: میزان اعتبار باقیمانده به ریال
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
GetSmsCost (برای مشاهده هزینه یک پیامک)
نحوه فراخوانی
public int GetSmsCost(string pUsername, string pPassword, string sms, out int cost)
پارامتر های ورودی
- pUsername: نام کاربری
- pPassword: کلمه عبور
- sms: متن پیامک
پارامترهای خروجی
cost: هزینه ارسال پیامک به ریال
مقدار بازگشتی
در صورت صحت اجرای متد، عددی منفی و در صورت رخ دادن خطا، شماره خطا
در این بخش حالات ممکن برای ارسال بررسی میشود.
برای هر یک از دو پارامتر messages و mobiles، می توان یکی از مقدار 1 و N را در نظر گرفت.
در اینصورت، 2 حالت کلی برای ارسال پیامک وجود دارد:
1- ارسال یک پیام برای چند گیرنده: messages = 1 , mobiles = N
2- ارسال چند پیام برای چند گیرنده: messages = N , mobiles = N
در صورتی که قصد مقدار دهی آرایههای encodings, udh, mClass را دارید، توجه داشته باشید که طول این آرایه ها یا باید برابر با طول دیگر پارامترها یا برابر با یک باشند.
در حالت اول مقدار پارامترها برای تمامی پیامها برای همه یکسان و برابر با پارامتر ارسالی – که طول آن یک است – در نظر گرفته خواهد شد. در حالت دوم، مقادیر آنها برای هر پیام به صورت متناظر و بر اساس مقادیر ارسالی برای هر پیام ارسال خواهند شد.