国内短信-接口

调用环信的REST API地址:

POST /{orgname}/{appname}/sms/send

Request header

Authorization Bearer YWMtPZoRTFk0EeukvYVwaay5gAAAAAAAAAAAAAAAAAAAAAGEbAIHRQdI85XWWn9IAKURAgMAAAF3E059-QBPGgC29yIdZgUINP3vg5IapIANY6z_qQpTbxbUXEX928VpPQ


有关Token的获取 获取token
Request body

名称 类型 是否必须 说明 样例
mobiles String[] 数组,需要发送短信的手机号,数组长度不能超过100。 [“2145652789851”]
tid String 短信模板id iydsfsdfi
tmap Map<String, String> 模板变量名和变量值对。 {“p1”:“value”}
extendCode String 扩展码 1
custom String 用户自定义属性,长度不超过64,回调请求中会携带此字段;

Response

Http Code 说明
200 成功

Respose body

名称 类型 说明
count int 该条短信的计费条数(计费条数:70 个字一条,超出 70 个字时按每 67 字一条计费)
msg String 例如“发送成功”,或者相应错误信息


Eg:
请求实例

curl --location --request POST 'http://a1.easemob.com/easemob-demo/894249797/sms/send' \
--header 'Authorization: Bearer token' \
--header 'Content-Type: application/json' \
--data-raw '{
    "mobiles": [
        "13718793706"
    ],
    "tid": "134",
    "tmap": {
        "p1": "p1",
        "sendIndex": "638-520-3307",
        "sendDate": " 2021-05-26 16:45:48",
        "sendTotal": "300000"
    },
    "extendCode": "888",
    "custom": "{\"i\":276,\"a\":300000,\"id\":\"ZANK\",\"s\":300000,\"ts\":1618294122528}"
}'


返回实例

http 200
{
    "count": 1,
    "msg": "短信发送成功!"
}

注意:
余额为0时,发送短信仍然提示成功。但是真实发送是失败的
实现逻辑:将短信放到队列中,认为发送成功。但是真实发送时判断失败,通过状态回调接口,通知用户失败。

POST URL用户提供


功能说明:该接口的请求参数是一个数组,数组里最多有100个状态报告。
设置接口:在console控制台中设置下行短信状态报告。 请求头Header

AppKey String 应用的AppKey
CurTime Long 当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的毫秒数
MD5 String 根据请求中的request body计算出来的MD5值
CheckSum String 校验值
Content-Type String 请求消息体类型,一般为:application/json


CheckSum = sha1(AppSecret + MD5 + CurTime),其中AppSecret 、MD5、CurTime均为String类型。
在验证数据是否在传输过程中被篡改时,需要计算验证MD5值是否被修改,以及计算验证CheckSum。
AppSecret值为“设置回调地址 接口参数”, MD5值为根据request body计算出来的值。
String requestBody = “{….}”;
String MD5 = MD5(requestBody);

[{
    "reportStatus": "Fail",
    "reportMsg": "GB:0015",
    "mobile": "17325538434",
    "sendTime": "2021-04-07 05:30:28",
    "reportTime": "2021-04-07 05:30:28",
    "extendCode": "111",
    "smsSubAccount": "3aa1f997d9014f9f8b946f40ae57106d",
    "custom": "dddddddd"
}]

元素:

名称 类型 是否必须 说明
custom String
extendCode String 短信扩展码
mobile String 接受短信的手机号
reportMsg String 成功时为空,失败时表示具体失败原因
reportStatus String “OK”代表发送成功,“Fail”表示失败
reportTime String 收到运营商状态报告的时间
sendTime String 短信发送时间
成功:
reportStatus: OK
reportMsg 没有。
失败:
reportStatus: FAIL
reportMsg: GB:0025
POST URL用户提供


功能说明:该接口的请求参数是一个数组,数组里最多有100个状态报告。对于长短信会出现多次回调。
设置接口,在console控制台中添加上行短信回调地址
如果选择加密,会生成一个MD5密钥和MD5加密算法的盐值。环信平台往用户回调地址回调时会使用密钥+盐值+时间戳计算出MD5值填充在Request header中
请求Header

AppKey String 应用的AppKey
CurTime Long 当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的毫秒数
MD5 String 根据请求中的request body计算出来的MD5值
CheckSum String 校验值
Content-Type String 请求消息体类型,一般为:application/json


在验证数据是否在传输过程中被篡改时,需要计算验证MD5值是否被修改,以及计算验证CheckSum。
AppSecret值为“设置回调地址 接口参数”, MD5值为根据request body计算出来的值。
String requestBody = “{….}”;
String MD5 = MD5(requestBody);
元素:

mobile String 上行手机号
content String 短信上行 内容
pushTime String 短信上行 推送时间
platRecvTime String 平台接收 时间
extendCode String 短信扩展码
[{
    "mobile": "13718793706",
    "content": "uuuuuuuuu",
    "pushTime": "2021-05-26 16:45:24",
    "platRecvTime": "2021-05-26 16:45:24",
    "extendCode": "888",
    "smsSubAccount": "6bdedc0444c74bd4932eed8f1fb7e562"
}]