短信發送接口
1.1 請求地址
請求地址是客戶接口程序調用時請求的url地址,采用的是http post 接口,地址是
http://47.92.121.147/sms.aspx 對應UTF-8
http://47.92.121.147/smsGBK.aspx 對應GB2312
http://47.92.121.147/smsJson.aspx 對應UTF-8(返回值為json格式)
http://47.92.121.147/ensms.ashx 對應UTF-8(加密傳輸,使用json)
http://47.92.121.147/BatchSms.ashx 對應UTF-8的點對點發送
入口地址一般不會發生變化,當發生變化的時候,會通知接口用戶
1.2參數說明
參數名稱 |
含義 |
說明 |
userid |
企業id |
企業ID(不驗證) |
account |
發送用戶帳號 |
用戶帳號,由系統管理員 |
password |
發送帳號密碼 |
用md5加密方式,md5采用32位大寫 如abc123加密后為 E99A18C428CB38D5F260853678922E03 |
mobile |
全部被叫號碼 |
短信發送的目的號碼.多個號碼之間用半角逗號隔開 |
content |
發送內容 |
短信的內容,內容需要UTF-8編碼,提交內容格式:內容+【簽名】。簽名是公司的名字或者公司項目名稱。示例:您的驗證碼:1439【兆永】?!尽渴呛灻臉俗R符。請按照正規的格式提交內容測試,請用正規內容下發,最好不要當成是測試,就當是正式使用在給自己的客戶發信息 |
sendTime |
定時發送時間 |
為空表示立即發送,定時發送格式2010-10-24 09:08:10(可選) |
action |
發送任務命令 |
設置為固定的:send |
extno |
擴展子號 |
請先詢問配置的通道是否支持擴展子號,如果不支持,請填空。子號只能為數字,且最多5位數。(可選) |
例如:
http://47.92.121.147/sms.aspx?action=send&userid=&account=賬號&password=密碼&mobile=15023239810,13527576163&content=內容&sendTime=&extno=
1.3返回值
在接收到客戶端發送的http請求后,返回以xml的方式返回處理結果。格式為:
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<returnstatus>status</returnstatus> ---------- 返回狀態值:成功返回Success 失敗返回:Faild
<message>message</message> ---------- 相關的錯誤描述
<remainpoint> remainpoint</remainpoint> ---------- 返回余額
<taskID>taskID</taskID> ----------- 返回本次任務的序列ID
<successCounts>successCounts</successCounts> --成功短信數:當成功后返回提交成功短信數
</returnsms>
1.4 Json返回值
{"returnstatus":"Success",
"message":"操作成功",
"remainpoint":"-4",
"taskID":"1504080852350206",
"successCounts":"1"}
1.5 加密傳輸
參數名稱 |
含義 |
說明 |
UserId |
企業id |
數字類型,由供應商提供。 |
Text64 |
編碼后的參數 |
詳見下解 |
Text64的生成方法:
1. 首先構造一個json串(包含發送的具體參數)。
Json的結構如下:
屬性名稱 |
含義 |
說明 |
UserName |
帳戶名稱 |
字符串類型,由供應商提供。 |
Stamp |
時間戳 |
格式為MMddHHmmss 誤差不超過5分鐘。 |
Secret |
認證密文 |
生成方式 Md5(password+stamp) Md5為標準32位,大寫 Password由供應商提供。 Stamp為上面的字段。 |
Moblie |
手機號碼 |
多個用英文逗號分開。 |
Text |
短信的內容 |
|
Ext |
擴展號 |
(可選項)純數字組成,如果沒有,請留空 |
SendTime |
定時時間 |
(可選項)格式為yyyy-MM-dd HH:mm:ss 非定時請留空 |
示例:
{"UserName":"test","Secret":"2A8D628159B0D4D3D4D58A3EB17F3082","Stamp":"0414174715","Moblie":"15510331875","Text":"我的驗證碼是:7890?!緤W創時代】","Ext":"","SendTime":""}
2.將json串用utf8轉為字節數組。
上邊的json轉換后的結果:
7B 22 55 73 65 72 4E 61 6D 65 22 3A 22 74 65 73 74 22 2C 22 53 65 63 72 65 74 22 3A 22 32 41 38 44 36 32 38 31 35 39 42 30 44 34 44 33 44 34 44 35 38 41 33 45 42 31 37 46 33 30 38 32 22 2C 22 53 74 61 6D 70 22 3A 22 30 34 31 34 31 37 34 37 31 35 22 2C 22 4D 6F 62 6C 69 65 22 3A 22 31 35 35 31 30 33 33 31 38 37 35 22 2C 22 54 65 78 74 22 3A 22 E6 88 91 E7 9A 84 E9 AA 8C E8 AF 81 E7 A0 81 E6 98 AF EF BC 9A 37 38 39 30 E3 80 82 E3 80 90 E5 A5 A5 E5 88 9B E6 97 B6 E4 BB A3 E3 80 91 22 2C 22 45 78 74 22 3A 22 22 2C 22 53 65 6E 64 54 69 6D 65 22 3A 22 22 7D
3.將字節數組,用des加密。
des使用 CBC模式。Padding為PKCS7。
Key 的生成方式,將Password轉為字節數組,取前8位(不足8位,右側補字節0)
IV與key相同。
上面的字節數組加密后的結果:
Password為test,生成的key為:74 65 73 74 00 00 00 00。
D0 3A 8A 1A 6F 4C 5A 7B 05 33 6C 25 60 45 BA E5 55 F2 94 1C 49 18 18 AE 67 33 F9 75 3A 75 00 B7 4A ED 06 93 83 1D 1C 47 91 9F B6 49 E3 88 D2 41 39 DE 3A B5 D2 69 FB A2 77 39 80 28 BA 41 01 38 A9 5F B0 4C 53 68 56 02 ED 7E 75 E0 FC 8B 0B E3 6B C2 10 CB 29 83 AF 14 06 FB 80 1A 3E 76 A9 2C 96 F5 49 92 5C F8 AA 6E FF 81 41 EB 1C 04 F6 77 B8 44 71 0C 61 0C C0 FE 22 3F 0D 23 2D 64 BC 7A 94 DE 7A 19 4E A8 E5 0B 53 DA 68 56 32 EB 38 9F 06 BE 4D 0F E5 78 50 AD 31 33 BB 1C 17 F6 AF 7D 52 96 FF 49 35 EA AA 95 CC 30 C9 A1 C4 64 4F 3D 23 AA FB 49 61 FA 35 96 2B 88 DB E8 76 7D 19 0A
4.將加密后的字節數組用base64方式轉為字符串。即為Text64的值。
上面加密字節生成的結果:
0DqKGm9MWnsFM2wlYEW65VXylBxJGBiuZzP5dTp1ALdK7QaTgx0cR5GftknjiNJBOd46tdJp+6J3OYAoukEBOKlfsExTaFYC7X514PyLC+NrwhDLKYOvFAb7gBo+dqkslvVJklz4qm7/gUHrHAT2d7hEcQxhDMD+Ij8NIy1kvHqU3noZTqjlC1PaaFYy6zifBr5ND+V4UK0xM7scF/avfVKW/0k16qqVzDDJocRkTz0jqvtJYfo1liuI2+h2fRkK
在傳輸此值時,請使用urlencode
返回結果:
{"StatusCode":1,"Description":"操作成功","MsgId":"1504141655440332","Amount":-11,"SuccessCounts":1,"Errors":[]}
參數名稱 |
含義 |
說明 |
StatusCode |
發送的狀態代碼 |
數字類型,1表示成功,其它為失敗,參見最后的錯誤代碼表。 |
Description |
發送說明 |
發送結果狀態操作說明 |
MsgId |
任務ID |
提交短信的任務批次 |
Amount |
當前余額 |
當前賬戶的余額 |
SuccessCounts |
成功的號碼數量 |
成功的號碼數量 |
Errors |
錯誤描述 |
本次發送中,相關的錯誤描述 |
1.6 點對點發送
1.6.1 請求地址
http://47.92.121.147/BatchSms.ashx 對應UTF-8的點對點發送,只支持post方式的提交 (Zip壓縮內容)
1.6.2 參數說明
參數名稱 |
含義 |
說明 |
userid |
企業id |
企業ID(不驗證) |
account |
發送用戶帳號 |
用戶帳號,由系統管理員 |
password |
發送帳號密碼 |
用md5加密方式,md5采用32位大寫 如abc123加密后為 E99A18C428CB38D5F260853678922E03 |
content |
發送內容 |
點對點短信內容: url編碼的base64短信內容 格式:詳見下解 |
sendTime |
定時發送時間 |
為空表示立即發送,定時發送格式2010-10-24 09:08:10 |
extno |
擴展子號 |
請先詢問配置的通道是否支持擴展子號,如果不支持,請填空。子號只能為數字,且最多5位數。 |
content值生成方法:
1) 每條內容以手機號開頭,英文逗號為分隔符,后面跟短信內容,多條內容以\r\n為分隔符
a) 手機號+分隔符(,)+內容+結尾標識(\r\n) + 手機號+分隔符(,)+內容+結尾標識(\r\n)
b) 例:13800138000,驗證碼:1234【兆永】\r\n13800138000,驗證碼:4567【兆永】
注:同一批任務中不允許出現重復的手機號碼,如果短信內容中有\r\n符號需要進行轉義
2) 將\r\n組合后的內容進行Zip壓縮,將壓縮后的byte數組進行base64編碼,傳輸content值時需要進行url編碼
1.6.3返回值
在接收到客戶端發送的http請求后,返回以xml的方式返回處理結果。格式為:
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<returnstatus>status</returnstatus> ---------- 返回狀態值:成功返回Success 失敗返回:Faild
<message>message</message> ---------- 相關的錯誤描述
<remainpoint> remainpoint</remainpoint> ---------- 返回余額
<taskID>taskID</taskID> ----------- 返回本次任務的序列ID
<successCounts>successCounts</successCounts> --成功短信數:當成功后返回提交成功短信數
</returnsms>