本文档协议用于云消息平台与第三方公司的服务端应用进行数据交互,提供云消息平台的短信服务等基础能力。
2 引用标准公网软件接口规范化1.0。
3 缩略语名称 | 含义 | 作用 |
---|---|---|
appSecret | 云消息平台分配的key | 第三方参数加密密钥 |
XXTea | 小型的对称加密算法 | 对传入参数加密 |
JSON | JavaScript Object Notation | 种轻量级的数据交换格式 |
4.1 通讯协议
短信服务采用HTTPS协议跟接入方交互,保证数据安全性,返回结果为JSON数据,详见每个接口说明。
4.2 数据格式下面章节接口详细规范的请求参数说明中,如果与本章中定义的参数相同,只是为了描述,无需在加密参数串paras中重复设置。下面章节接口详细规范的请求参数说明中,如果没有特殊描述,都是说明非公共参数,即paras中需要加密的参数。
4.2.1 下行公共参数服务支持以POST或GET方式提交数据,考虑到请参数长度可能受限,建议以POST方式提交。请求参数个数固定,如下表所述:
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
appKey | 开发者在注册应用的时候在云消息平台申请的接入方ID。 | String | 10 | N |
clientType | 客户端类型。 | String | 8 | N |
format | 目前仅支持json格式,redirect(用于重定向接口的显示说明)。 | String | 10 | N |
version | 调用的接口版本号,默认v1.0,如v1.5 、v2.0。 | String | 5 | N |
paras | 使用appSecret对所有传入参数采用XXTea加密,并且按照接口详细规范中定义的参数(除appKey、clientType、format、version、sign)拼接,不要求参数顺序。例如:paras = XXTea((a=value1&b=value2&…), appSecret))。 | String | N | |
sign | 签名算法: sign=HMAC-SHA1(appKey+clientType+format+version+paras,appSecret)。 备注:注意保持签名的各字段顺序正确。 |
String | 100 | N |
服务支持以POST或GET方式提交数据,考虑到请参数长度可能受限,建议以POST方式提交。请求参数个数固定,如下表所述:
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
appKey | 开发者在注册应用的时候在189邮箱开放平台申请的接入方ID。 | String | 10 | N |
paras | 使用appSecret对所有传入参数采用XXTea加密,并且按照接口详细规范中定义的参数(除appKey、sign)拼接,不要求参数顺序。例如:paras = XXTea((a=value1&b=value2&…), appSecret))。 | String | N | |
sign | 签名算法: sign=HMAC-SHA1(appKey+paras,appSecret) 备注:注意保持签名的各字段顺序正确。 |
String | 100 | N |
1.接入方在接入短信服务时之前,需要登录189邮箱开放平台,需要申请接入appKey和appSecret,并由业务人员评估并分配需要使用的接口,所有接口调用通过appKey来识别接入方,并通过appSecret对传输的用户数据进行加密以确保调用安全。
2.申请appKey之前,需要在189邮箱开放平台中进行企业认证,认证通过后才可以进行appKey申请等后续操作。
3.用户申请appKey和appSecret之后,需要在平台上编辑自己的短信模板并提交审核,具体的步骤请详细见189邮箱开放平台开发者文档。
4.对于安全要求更高的接口,189邮箱开放平台要求只能通过服务端IP白名单鉴权来调用,IP白名单要求接入方在系统上线前告知189邮箱开放平台业务人员。
获取令牌accessToken,短信能力使用时需要传入该参数,accessToken存在有效时间,应在失效时更新accessToken。
2. 接口定义接口名称 | accessToken |
---|---|
接口描述 | 提供获取令牌accessToken的能力 |
承载协议 | HTTPS |
承载网络 | 公网 |
请求方式 | GET、POST |
数据格式 | 请求参数以form表单形式提交,返回数据类型为:Json |
约束 | |
接口URL | /auth/getAccessToken 测试环境:http://183.61.185.118:8082/sendApi/auth/getAccessToken 生产环境:https://ytx.21cn.com/sendApi/auth/getAccessToken |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
timeStamp | 时间戳,毫秒 | Long | 18 | N |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
code | 10000:成功, 其他:失败 | Integer | 6 | N |
msg | 错误时返回错误信息 | String | 1024 | N |
timeStamp | 时间戳yyyy-MM-dd HH:mm:ss,其中HH 取值为00-23,时区为东八区(接入方必须判断时间戳的有效性,以防重放攻击)。 | String | 19 | N |
appKey | 开发者在注册应用的时候在智能消息平台申请的接入方ID。 | String | 10 | N |
accessToken | 令牌 | String | 64 | N |
expiresIn | accessToken的有效期,以秒为单位 | Long | 18 | N |
使用189邮箱开放平台中已经通过审核的短信或邮件模板,传入对应的变量,从而下发自定义内容的短信或邮件。模板中含有的变量必须全部填充,否则不允许下发。
2. 接口定义接口名称 | smv |
---|---|
接口描述 | 提供下发短信或邮件的能力 |
承载协议 | HTTPS |
承载网络 | 公网 |
请求方式 | POST、GET |
数据格式 | 请求参数以form表单形式提交,返回数据类型为:Json |
约束 | |
接口URL | /send/smv 测试环境:http://183.61.185.118:8082/sendApi/send/smv 生产环境:https://ytx.21cn.com/sendApi//send/smv |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
requestId | 请求ID,标识一次发信行为,相同请求ID不予下发 | String | <=16 | N |
ext | 扩展号 | String | 1至7位 | Y |
timeStamp | 时间戳,毫秒 | Long | 18 | N |
accessToken | 令牌 | String | 64 | N |
type | 发送类型: type=1,单发短信 type=2,单发邮件 type=3,邮件发送后,生成短链并发短信 |
Integer | 1 | N |
收件人邮箱 type为2时必选 当type=3时,email为null,则邮箱为mobile+@189.cn |
String | 60 | Y | |
emailTemplateId | 邮件模板ID 当type=2或3时,必选 |
String | 64 | Y |
mobile | 短信接收方手机号 type=1或type=3,必选 |
String | 20 | Y |
smsTemplateId | 短信模板ID type=1或type=3,必选 |
String | 64 | Y |
data | 模板对应的变量数据,JSON格式 说明:key:value形式,key为模板对应的变量,value为该变量对应的值 例子: { "name":"189邮箱", "goods":"牛奶" } |
String | 2048 | Y |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
code | 结果码。10000:成功, 其他:失败 | Integer | 6 | N |
msg | 错误时返回错误信息 | String | 64 | N |
timeStamp | 时间戳yyyy-MM-dd HH:mm:ss,其中HH 取值为00-23,时区为东八区(接入方必须判断时间戳的有效性,以防重放攻击)。 | String | 19 | N |
appKey | 开发者在注册应用的时候在智能消息平台申请的接入方ID。 | String | 10 | N |
recordId | 消息ID,该消息唯一标识,之后的回调会作为参数带上。 | String | 32 | N |
requestId | 请求ID,标识一次发信行为,相同请求ID不予下发。 | String | <=20 | N |
code | msg | 含义 |
---|---|---|
10000 | send_ok | 成功 |
-1001 | param_illegal | 参数校验错误 |
-1002 | param_lack | 缺少参数 |
-1003 | invalid_request | 无效请求 |
-1004 | error_sign | 签名错误 |
-1005 | error_permission | 无接口权限 |
-1006 | invoked_frequent | 调用过于频繁 |
-1007 | system_exception | 系统错误 |
-1008 | ip_illegal | 调用方ip不合法 |
-1009 | token_illegal | 调用方token不合法 |
-1010 | sms_template_illegal | 调用方使用的短信模板不存在或不合法 |
-1011 | mail_template_illegal | 调用方使用的邮件模板不存在或不合法 |
-1012 | mobile_illegal | 手机号不合法 |
-1013 | email_illegal | 邮箱不合法 |
-1014 | content_illegal | 内容未通过反垃圾扫描 |
-1015 | sender_phone_illegal | 下发端口不合法 |
-1016 | appKey_illegal | appKey不合法 |
-1017 | clientType_illegal | 调用方客户类型不合法 |
-1018 | ext_illegal | 同一个模板不能使用不同的扩展码 |
-1019 | ext_occupied | 扩展码已经被占用 |
-1020 | ext_fail | 扩展号分配失败 |
-1021 | channel_illegal | 通道配置有误 |
短信发送状态报告推送接口,使用方需在云通信配置短信发送状态报告推送接口地址。
2. 接口定义接口名称 | 短信发送状态报告推送接口 |
---|---|
接口描述 | 短信发送状态报告推送接口 |
承载协议 | HTTP |
承载网络 | 公网 |
请求方式 | GET、POST |
数据格式 | 请求参数以form表单形式提交,返回数据类型为:Json |
约束 | |
接口URL | 用户自定义,在申请appKey时填充完善 |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
timeStamp | 时间戳,毫秒 | Long | 18 | N |
mobile | 接收方手机号 | String | 20 | N |
code | 发送状态 | String | 6 | N |
recordId | 消息ID,该消息唯一标识,与发送接口返回的recordId对应。 | String | 32 | N |
sendTime | 下发时间,时间戳,毫秒 | Long | 18 | N |
response status = 200表示成功,其它失败并重试。重试次数3次后,取消重试,并记录该次回调失败。
5. 发送状态报告码表code | 说明 |
---|---|
200 | 发送成功 |
100 | 发送等待 |
-200 | 失败 |
-201 | 发送拒绝,内容未通过审核,黑名单,不须重试 |
-202 | 发送用户不存在 |
-100 | 变量数据有误 |
-101 | requestId 重复,拒绝下发 |
-300 | 其它异常 |
-301 | 系统异常 |
邮件发送状态报告推送接口,使用方需在云通信配置邮件发送状态报告推送接口地址。
2.接口定义接口名称 | 邮件发送状态报告推送接口 |
---|---|
接口描述 | 邮件发送状态报告推送接口 |
承载协议 | HTTP |
承载网络 | 公网 |
请求方式 | POST、GET |
数据格式 | 请求参数以form表单形式提交,返回数据类型为:Json |
约束 | |
接口URL | 用户自定义,在申请appKey时,需完善该接口地址。 |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
timeStamp | 时间戳,毫秒 | Long | 18 | N |
接收方邮箱 | String | 20 | N | |
code | 发送状态 | String | 6 | N |
recordId | 消息ID,该消息唯一标识,与发送接口返回的recordId对应。 | String | 32 | N |
sendTime | 下发时间,时间戳,毫秒。 | Long | 18 | N |
response status = 200表示成功,其它失败并重试。重试次数3次后,取消重试,并记录该次回调失败。
5. 发送状态报告码表code | 说明 |
---|---|
200 | 成功 |
-200 | 失败 |
-100 | 数据有误 |
-101 | requestId 重复,拒绝下发 |
-300 | 其它异常 |
-301 | 系统异常 |
短信上行回复推送接口,需在189邮箱开放平台设置推送接口地址。
2. 接口定义接口名称 | 短信上行回复推送 |
---|---|
接口描述 | 短信上行回复推送 |
承载协议 | HTTP |
承载网络 | 公网 |
请求方式 | POST、GET |
数据格式 | 请求参数以form表单形式提交,返回数据类型为:Json。 |
约束 | |
接口URL | 用户自定义 |
字段标识 | 说明 | 数据类型 | 长度 | 可空 |
---|---|---|---|---|
timeStamp | 时间戳,毫秒 | Long | 18 | N |
mobile | 回复用户手机号 | String | 20 | N |
content | 回复内容 | String | 255 | N |
receiveTime | 接收时间,时间戳,毫秒 | Long | 18 | N |
ext | 扩展号,数值 | String | 1至7位 | Y |
response status = 200表示成功,其它失败并重试。重试次数3次后,取消重试,并记录该次回调失败。