测试账号关注微信领取:g94263
接口说明:客户接口部分提供https 和 WebService(目前只支持提交短信) 方式的接口,客户可以根据需求选择相应接口,接口编码方式默认采用UTF-8
发送规则:
同一个号码,发送内容带有(验证码),3分钟之内只能3条,
超过3条,系统会默认为(恶意注册)
同一个号码,系统默认一天之内只能发送10条信息,超过
10条会超限失败(特殊号码、或特殊客户需要找客服处理)
注:短信计费条数跟短信的字数有关,一般的短信70个字计费一条。超过70个字就划分为长短信,67个字计费一条,例如;71字的短信就是长短信计费2条,134个字也是计费2条(67*2)。135个字计费3条,依次类推。
第一章 短信发送接口
1.1 请求地址
请求地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是
https://dx.ipyy.net/sms.aspx 对应UTF-8
https://dx.ipyy.net/smsGBK.aspx 对应GB2312
https://dx.ipyy.net/smsJson.aspx 对应UTF-8(返回值为json格式)
https://dx.ipyy.net/ensms.ashx 对应UTF-8(加密传输,使用json)
入口地址一般不会发生变化,当发生变化的时候,会通知接口用户
1.2参数说明
参数名称 |
含义 |
说明 |
userid |
企业id |
企业ID(不验证) |
account |
发送用户帐号 |
用户帐号,由系统管理员 |
password |
发送接口密码 |
用md5加密方式,md5采用32位大写 如abc123加密后为 E99A18C428CB38D5F260853678922E03 |
mobile |
全部被叫号码 |
短信发送的目的号码.多个号码之间用半角逗号隔开 |
content |
发送内容 |
短信的内容,内容需要UTF-8编码,提交内容格式:内容+【签名】。签名是公司的名字或者公司项目名称。示例:您的验证码:1439【腾飞】。【】是签名的标识符。请按照正规的格式提交内容测试,请用正规内容下发,最好不要当成是测试,就当是正式使用在给自己的客户发信息,签名字数3-8个字 |
sendTime |
定时发送时间 |
为空表示立即发送,定时发送格式2018-02-02 09:08:10(可选) |
action |
发送任务命令 |
设置为固定的:send |
extno |
扩展子号 |
请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多5位数。(可选) |
例如:
https://dx.ipyy.net/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 失败返回:Fail
<message>message</message> ---------- 相关的错误描述
<remainpoint> remainpoint</remainpoint> ---------- 返回余额
<taskID>taskID</taskID> ----------- 返回本次任务的序列ID
<successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数
</returnsms>
1.4 Json返回值
{"returnstatus":"Success", ---------- 返回状态值:成功返回Success 失败返回:Fail
"message":"操作成功",---------- 相关的错误描述
"remainpoint":"-4",----------- 返回余额
"taskID":"1504080852350206",----------- 返回本次任务的序列ID
"successCounts":"1"}---------------成功短信数:当提交成功后返回的短信数
1.5 加密传输
参数名称 |
含义 |
说明 |
UserId |
企业id |
数字类型,由供应商提供。 |
Text64 |
编码后的参数 |
详见下解 |
Text64的生成方法:
- 首先构造一个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。【奥创时代】","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 |
成功的号码数量 |
成功的号码数量 |
Error |