راهنمای توسعه دهندگان

AKAM SMS Restful API

شماره بازنگری تاریخ بازنگری شرح بازنگری
01 20/03/1394 تدوین اولین ویرایش
02 31/06/1394 ارسال از طریق متد GET
03 25/08/1394 دریافت پیامک های ورودی
04 1395/03/18 مدیریت دفترچه تلفن
05 15/06/1397 دریافت پیامک های ورودی مابین دوتاریخ مشخص

شروع به کار :

ﻣﺴﺘﻨﺪ ﺣﺎﺿﺮ جهت توسعه دهندگانی طراحی شده است که قصد ارسال و دریافت پیامک در نرم افزارهای خود، از طریق ﺳﻴﺴﺘﻤﻬﺎﻱ ﭘﻴﺎﻡ ﺩﻫﻲ آکام را دارند. در این راهنما کلیه متدها و دستورات موردنیاز توسعه دهندگان شرح داده شده است.

جهت استفاده از متدهای وب سرویس، ابتدا لازم است از طریق عقد قرارداد با واحد سیستم های پیام دهی شرکت، حساب خود را فعال نمایید. پس از فعالسازی، نام کاربری (username) و کلمه عبور (password)  در اختیار شما قرار خواهد گرفت که جهت استفاده در نرم افزار شخصی و نیز برای وارد شدن به صفحه اختصاصی کاربر بر روی سایت مورد استفاده قرار می گیرد. 

مفاهیم پایه :

  • متن هر پیامک فارسی شامل 70 کاراکتر و پیامک انگلیسی 160 کاراکتر است. اگر تعداد کاراکتر ها بیش از تعداد مذکور باشد پیامک به 2 پیامک یا بیشتر تقسیم می شود.

در هنگام مقدار دهی پارامترها به نکات زیر توجه فرمایید:

  • تمام پارامترها Case Sensitive هستند.
  • شماره همراه باید به فرمت  989********* باشد .
  • شماره فرستنده بدون هیچگونه پیشوندی باشد.
  • در ارسال پیامک، پیامک ها به صورت بسته های 200 تایی ارسال می شوند. به این صورت که میتوان در هر درخواست 200 پیامک ارسال کرد. درخواست های 200 پیامکی بنا به اینکه متن پیامک چند پارتی است تغییر میکند، به این صورت که 200 تقسیم بر تعداد پارت های پیامک می شود و تعداد شماره ها در هر درخواست بدست می آید سپس تعداد کل شماره هایی که پیامک به آنها باید ارسال شود بر تعداد شماره های هر درخواست تقسیم میشود و تعداد درخواست ها بدست می آید. برای مثال اگر متن پیامک 2 پارت باشد، 200 تقسیم بر 2 می شود و به 100 شماره میتوان در هر درخواست پیامک را فرستاد. سپس تعداد کل شماره ها بر تعداد شماره ها(برای مثال 1000) بر 100 تقسیم می شود و تعداد درخواست ها بدست می آید. اگر تعداد شماره ها بیشتر از تعداد قابل ارسال باشد با کد خطای 9 مواجه خواهید شد.
  • جهت استفاده از متد ها باید آی پی های مجاز در پنل کاربری ست شود.

متدها و پارامترها :

متد send  : برای ارسال پیامک

آدرس متد :  http://api.asiasms.ir:8080/Messages/Send

در متد موردنظر درخواست در قالب XML  و یا JSON  و از طریق متد POST   ارسال شود. در ادامه نمونه ای از ارسال به همراه شرح هر کدام از ورودی ها و همچنین خروجی دریافتی از سیستم ذکر گردیده است.

ورودی XML  :

                                                                          <Sms>

                     <CheckId>C63DEE7C-7CD9-453F-8B58-357526D8A824 </CheckId>

                                                        <SmsText>hi</SmsText>

                      <Receivers>98912xxxxxxx,98913xxxxxxx,..... </Receivers>

                                                   <SenderId>6500</SenderId>

                                                     <IsFlash>true</IsFlash>

                                                                 <UDH></UDH>

                                                                      </Sms>

ورودی JSON  :

,"...,SmsText":"salam", "Receivers":"98913xxxxxxx,98912xxxxxxx"}

{,"":"SenderId":"6500",IsUnicode:true,IsFlash:false,UDH:" "”CheckId”

نام متد Send
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
SenderId string اختیاری شماره فرستنده
SmsText string اجباری متن پیامک
Receivers string اجباری شماره گیرندگان پیامک با جداکننده کاما
CheckId Guid اختیاری شناسه درنظر گرفته شده در سیستم کاربر
udh string اختیاری سرآیند تعریف شده توسط کاربر
isflash bool اختیاری نمایش بصورت فلش
ﺗﻮﺿﻴﺢ : پارامترهای  username و  password از روی  headerارسالی خوانده می شود.
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
BatchId Guid شناسه ثبت شده در سیستم پیام دهی شرکت

• در صورتی که پارامتر SenderId خالی باشد ارسال شما از طریق شماره پیش فرضی که برروی حساب کاربری تعریف شده است انجام میشود.

ارسال از طریق URL

در متد موردنظر پارامترها از طریق متد GET   به آدرس زیر ارسال شود.

http://api.asiasms.ir:8080/Messages/SendViaURL

نام متد SendViaURL
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
Username string اجباری نام کاربری
Password string اجباری کلمه عبور
SenderId string اختیاری شماره فرستنده
SmsText String اجباری متن پیامک
Receivers String اجباری شماره گیرندگان پیامک با جداکننده کاما
CheckId Guid اختیاری شناسه درنظر گرفته شده در سیستم کاربر
udh string اختیاری سرآیند تعریف شده توسط کاربر
isflash bool اختیاری نمایش بصورت فلش
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
BatchId Guid شناسه ثبت شده در سیستم پیام دهی شرکت

به طور مثال:

                               http://api.asiasms.ir:8080/Messages/SendViaURL

           Username=username&password=password &SenderId=6500&SmsText=salam &   

                                          Receivers=989111111111,989111111111

 

متد GetMessage: دریافت پیامک های ورودی

آدرس متد :  http://api.asiasms.ir:8080/Receive/GetMessage

در متد موردنظر درخواست از طریق متد POST   ارسال شود. در ادامه نمونه ای از ارسال به همراه شرح هر کدام از ورودی ها و همچنین خروجی دریافتی از سیستم ذکر گردیده است.

ورودی XML  :

                                                                     <ReceiveInfo>
                                                              <Date>20150812</Date>
                                                     <Receiver>30005086</Receiver >
                                                                     </ReceiveInfo>

نام متد GetMessage
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
Date string اجباری تاریخ موردنظر جهت دریافت پیامک های ورودی می باشد. تاریخ شامل تاریخ میلادی بدون هیچگونه کاراکتر جداکننده ای میباشد بطور مثال 20150812
Receiver string اختیاری شماره خط
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
ReceivedMessages Array آرایه ای از آبجکت Sms

کلاس Sms شامل پارامترهای زیر می باشد:

From  : شماره فرستنده پیام بطور مثل 989131112233

To : شماره گیرنده که همان شماره خط می باشد.

Text  : متن پیام

ReceiveDateTime : زمان دقیق دریافت پیامک

متد GetReceivedMessages : دریافت پیامک های ورودی مابین دو تاریخ مشخص

آدرس متد :  http://api.asiasms.ir:8080/Receive/GetReceivedMessages

در متد موردنظر درخواست از طریق متد POST   ارسال شود. در ادامه نمونه ای از ارسال به همراه شرح هر کدام از ورودی ها و همچنین خروجی دریافتی از سیستم ذکر گردیده است.

ورودی XML  :

                                                               <ReceiveInfo>
                                            <BeginDate>2015-08-12</BeginDate>
                                                <EndDate>2015-09-12</EndDate>
                                                <Receiver>30004630</Receiver >
                                                               </ReceiveInfo>

نام متد GetMessage
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
BeginDate Date اجباری تاریخ شروع جهت دریافت پیامک های ورودی می باشد. تاریخ شامل تاریخ میلادی
EndDate Date اجباری تاریخ پایان جهت دریافت پیامک های ورودی می باشد. تاریخ شامل تاریخ میلادی
Receiver string اختیاری شماره خط
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
ReceivedMessages Array آرایه ای از آبجکت Sms

کلاس Sms شامل پارامترهای زیر می باشد:

From  : شماره فرستنده پیام بطور مثل 989131112233

To : شماره گیرنده که همان شماره خط می باشد.

Text  : متن پیام

ReceiveDateTime : زمان دقیق دریافت پیامک

متد GetPhoneBook : دریافت دفترچه تماس

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/GetPhoneBook

در متد موردنظر درخواست از طریق متد POST   ارسال شود. در ادامه نمونه ای از ارسال به همراه شرح هر کدام از ورودی ها و همچنین خروجی دریافتی از سیستم ذکر گردیده است.

ورودی XML  :

                                                                <PhoneBookInfo>
                                 <PhoneBookGuid>[PhoneBook Guid]</PhoneBookGuid>
                                                                </PhoneBookInfo>

در درخواست جهت دریافت لیست گروه های دفترچه تماس می بایست مقدار guid  مربوط به گروه دفترچه تماس لحاظ شود، در صورتی که این مقدار تعیین نشود و با مقدار empty  ارسال گردد لیست کلیه گروه ها در اختیار شما قرار خواهد گرفت.

خروجی XML

                                                                <ResponseMessage>
                                                 <IsSuccessful>true</IsSuccessful>
                                                         <StatusCode>0</StatusCode>
                                                                       <PhoneBooks>
                                                                        <PhoneBook>
                                              <PhoneBookGuid>[Guid]</PhoneBookGuid>
                                                      <Name>[PhoneBook Name]</Name>
                                                                      </PhoneBook>
                                                                      </PhoneBooks>
                                                                 </ResponseMessage>

نام متد AddGroup
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
PhoneBookGuid Guid اجباری Guid گروه دفترچه تماس
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
PhoneBooks Array آرایه ای از آبجکت PhoneBook

کلاس PhoneBook شامل پارامترهای زیر می باشد:

PhoneBookGuid : شناسه گروه ثبت شده.

Name : نام گروه ثبت شده.

متد AddGroup : افزودن گروه  به دفترچه تماس

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/AddGroup

در متد موردنظر درخواست در قالب  xml و یا JSON  و از طریق متد POST  ارسال شود.

ورودی XML  :

                                                                <PhoneBookInfo>
                                                  <Name>[PhoneBook Name]</Name>
                                                               <PhoneBookInfo/>

خروجی XML :

                                                                  <ResponseMessage>
                                                   <IsSuccessful>true</IsSuccessful>
                                                          <StatusCode>0</StatusCode>
                                                                         <PhoneBooks>
                                                                         <PhoneBook>
                                                <PhoneBookGuid>[Guid]</PhoneBookGuid>
                                                         <Name>[PhoneBook Name]</Name>
                                                                          </PhoneBook>
                                                                         </PhoneBooks>
                                                                    </ResponseMessage>

نام متد AddGroup
نام پارامتر نوع پارامتر اجباری/اختیاری توضیح
Name string اجباری نام گروه
خروجی
نام پارامتر نوع پارامتر توضیح
IsSuccessful bool نتیجه درخواست
StatusCode int کد وضعیت
PhoneBooks Array آرایه ای از آبجکت PhoneBook که تنها شامل گروه ثبت شده می باشد

کلاس PhoneBook شامل پارامترهای زیر می باشد:

PhoneBookGuid : شناسه گروه ثبت شده.

Name : نام گروه ثبت شده.

متد RemoveGroup : حذف گروه دفترچه تماس

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/RemoveGroup

در متد موردنظر درخواست در قالب  xml و یا JSON  و از طریق متد POST  ارسال شود.

ورودی XML  :

                                                                     <PhoneBookInfo>
                                      <PhoneBookGuid>[PhoneBook Guid]</PhoneBookGuid>
                                                                     </PhoneBookInfo>

جهت حذف گروه میبایست guid گروه موردنظر در در قالبت xml  به فرمت بالا ارسال شود.

متد Register  : ثبت شماره در گروه دفترچه تماس

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/Register

در متد موردنظر درخواست در قالب  xml و یا JSON  و از طریق متد POST  ارسال شود.

ورودی XML  :

                                                         <PhoneBookInfo>
                         <PhoneBookGuid>[PhoneBook Guid]</PhoneBookGuid>
                                                              <Numbers>
                                                                <Number>
                                            <FirstName>[Ali]</FirstName>
                                           <LastName>[Ahmadi]</LastName>
                                     <BirthDate>[2016-06-06]</BirthDate>
                                      <Telephone>03131111111</Telephone>
                                            <Mobile>9891xxxxxxxx</Mobile>
                                         <FaxNumber>021XXXXXX</FaxNumber>
                                                         <Job>[job]</Job>
                                              <Address>[Tehran]</Address>
                                                  <ZipCode>8179</ZipCode>
                                                <Email>[youremail]</Email>
                                                    <Gender>[1/2]</Gender>
                                       <ZoneGuid>[Guid of zone]</ZoneGuid>
                                                               </Number> …
                                                                </Numbers>
                                                          </PhoneBookInfo>

حداکثر تعداد شماره در هر بار فراخوانی متد مذکور 100 عدد می باشد.

فیلد Gender  مربوط به جنسیت مخاطب می باشد برای جنسیت مذکر عدد 1 و مونث عدد 2 لحاظ می شود.

درصورتی که لیست شماره ها خالی باشد با خطا مواجه خواهید شد.

متد UnSubscribe : حذف شماره از گروه دفترچه تماس

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/UnSubscribe

در متد موردنظر درخواست در قالب  xml و یا JSON  و از طریق متد POST  ارسال شود.

ورودی XML  :

                                                                   <PhoneBookInfo>
                                    <PhoneBookGuid>[PhoneBook Guid]</PhoneBookGuid>
                                                                          <Numbers>
                                                                           <Number>
                                                      <Mobile>9891xxxxxxxx</Mobile>
                                                                         </Number> …
                                                                         </Numbers>
                                                                   </PhoneBookInfo>

متد GetPagedNumbers :  دریافت شماره های گروه دفترچه تماس

متد GetCredit  : دریافت اعتبار

آدرس متد :  http://api.asiasms.ir:8080/PhoneBook/GetPagedNumbers

در متد موردنظر درخواست در قالب  xml و یا JSON  و از طریق متد POST  ارسال شود.

ورودی XML  :

                                                                <UserCredit>
                                           <IsSuccessful>false</IsSuccessful>
                                                    <StatusCode>0</StatusCode>
                                                <Credit>9954975744.84</Credit>
                                                                 </UserCredit>

متد SendGroup : برای ارسال به گروه های دفترچه تماس

آدرس متد : http://api.asiasms.ir:8080/Messages/SendGroup

                                                                       <Sms>

                                                    <SmsText>hi</SmsText>        

                                                                       
                                                              <PhoneBook>
                                                             ..,Guid,Guid

                                                           </PhoneBook> 

                                                <SenderId>6500</SenderId>

                                                            

                                                                      </Sms>

 

کد های خطا :

لیست کدهای خطا به شرح زیر می باشد

StatusCode
کد خطا عنوان شرح توضیحات
0 None بدون خطا در صورتی که عملیات با موفقیت انجام شود این مقدار در statuscode  قرار میگیرد.
1 AccountIsInactive حساب غیرفعال می باشد  
2 AccountIsExpired حساب منقضی شده است  
3 AccountIsInvalid حساب نامعتبر است  
3 BadRequest درخواست نامعتبر میباشد  
4 InternalServerError خطای سرور  
5 ReceiversIsEmpty لیست گیرندگان خالی می باشد لازم بذکر است فرمت صحیح گیرنده به صورت 98913xxxxxxx  می باشد
6 SenderIsInvalid فرستنده نامعتبر است شماره فرستنده نامعتبر یا خالی می باشد
7 ValidationNotValid اطلاعات ورودی صحیح نمی باشد خطاهای موجود بر روی پارامترها
8 IPInvalid آی پی نامعتبر می باشد  
9 ReceiverCountNotValid شماره گیرندگان نامعتبر می باشد تعداد گیرندگان باید با طول پیامک همخوانی داشته باشد حداکثر 200 پیامک
10 ServiceIdIsInvalid شماره فرستنده نامعتبر است  
11 ReceiverIsInvalid شماره گیرنده نامعتبر است  
12 ReceiveSmsIsEmpty بدون خطا در متد GetMessage زمانی که دریافتی وجود نداشته باشد