1 短信发送接口
1.1 业务流程说明
1.2 Base URL
模板短信API引用的地址有Base URL。生产环境的Base URL: https://sms.dahancloud.com/
1.3 统一请求包头
URL格式: /API/sendMessage?sig={SigParameter}在URL格式中 {}内的内容表示为参数。
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
SigParameter | String | 必选 |
REST API 验证参数,生成规则如下
1.使用MD5加密(账户Id + 账户授权令牌 + 时间戳)。其中账户Id和账户授权令牌根据url的验证级别对应主账户。 时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:20170904112030 2.SigParameter参数需要大写,如不能写成sig=abcdefg而应该写成sig=ABCDEFG |
1.4 HTTP标准包头字段
Accept:application/json;
Content-Type:application/json;charset=utf-8;
Content-Length:256;
Authorization:
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
Accept | String | 必选 | 客户端响应接收数据格式:application/json |
Content-Type | String | 必选 | 类型:application/json;charset=utf-8 |
Content-Length | String | 必选 | Content-Length |
Authorization | String | 必选 | 验证信息,生成规则详见下方说明 1.使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户 2.冒号为英文冒号 3.时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与SigParameter中时间戳相同。 |
1.5 请求包体
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
to | String | 必选 | 短信接收端手机号码集合,用英文逗号分开,每批发送的手机号数量不得超过500个 |
appId | String | 必选 | 应用Id |
templateId | String | 必选 | 模板Id |
datas | String | 必选 | 内容数据,用于替换模板中{序号} |
1.5.1 JSON请求示例
POST /API/sendMessage?sig=C1F20E7A9733CE94F680C70A1DBABCDE HTTP/1.1
Host: https://sms.dahancloud.com/
content-length: 139
Accept:application/json;
Content-Type:application/json;charset=utf-8;
Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
{"to":"13955821xxx,15064001xxx,13874771xxx","appId":
"ff8080813fc70a7b013fc7231232xxxx","templateId":"1","datas":["替换内容","替换内容"]}
Host: https://sms.dahancloud.com/
content-length: 139
Accept:application/json;
Content-Type:application/json;charset=utf-8;
Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
{"to":"13955821xxx,15064001xxx,13874771xxx","appId":
"ff8080813fc70a7b013fc7231232xxxx","templateId":"1","datas":["替换内容","替换内容"]}
1.6 响应
此步响应只表明客户的短信请求发送成功,不表明短信通道已经发送短信成功。属性 | 类型 | 约束 | 说明 |
---|---|---|---|
statusCode | String | 必选 | 请求状态码,取值000000(成功) |
smsMessageSid | String | 必选 | 短信唯一标识符 |
dateCreated | String | 必选 | 短信的创建时间 |
1.6.1 JSON响应示例
HTTP/1.1 200 OK
Content-Length: 641
{"statusCode":"000000","templateSMS":{"dateCreated":"20170904112030",
"smsMessageSid":" ff8080813c373cab013c94b0f0512xxx"}}
Content-Length: 641
{"statusCode":"000000","templateSMS":{"dateCreated":"20170904112030",
"smsMessageSid":" ff8080813c373cab013c94b0f0512xxx"}}
1.7 判断发送失败,重发
对响应解析后,statusCode为"000000"表示请求发送成功。statusCode不是"000000",表示请求发送失败,客户服务端可以根据自己的逻辑进行重发或者其他处理。
2 短信状态报告接口
2.1 请求方式
POST请求(仅支持POST请求)
2.2 请求参数
2.2.1 请求完整路径
https://report.dahancloud.com/sms/report
2.2.1 HTTP标准包头字段
Accept:application/json; Content-Type:application/json;charset=utf-8; Content-Length:256; Authorization:” ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDN2M6MxNTABCDE= ” sig:”c1f20e7a9733ce94f680c70a1dbabcde”
属性 | 类型 | 说明 |
---|---|---|
sig | String |
1、使用MD5加密(账户Id + 账户授权令牌 + 时间戳)。其中账户Id和账户授权令牌根据url的验证级别对应主账户。 时间戳是当前系统时间,格式"yyyyMMddHHmmss"。
2、时间戳有效时间为24小时,如:20170904112030 |
Authorization | String | 1、使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户 2、冒号为英文冒号 3、时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与sig中时间戳相同。 |
2.3 返回内容
2.3.1 提交响应数据格式
{ "code":"DH:0000", "datas": [{ "msgId ":"502f34ea6eae47288bd0917c46d83003", "phone ":"155**********", "status ":0, "time ":"2018-06-27 18:32:00" }], "msg":"请求成功" }
2.3.2 字段解释
属性 | 类型 | 说明 | |
---|---|---|---|
code | String | 请求状态码 | |
msg | String | 请求状态码对应描述 | |
datas | phone | String | 下行手机号码 |
status | String | 短信发送状态 | |
time | String | 状态报告时间 | |
msgId | String | 短信编号id |