logo
logo
请输入关键词搜索产品或者文档
中国

中国站

创蓝云智

国际站

Innopaas

短信发送

更新时间:2026-07-23 18:10:45

1、注意事项

  • 号码格式:国家代码+正确的手机号码。例如中国:8617321342252
  • 国际接口支持国际国内发送,默认关闭,需要发国内权限找对应商务申请开通,号码加中国代码:+86,发往大陆的短信内容一定要加签名、内容一定要报备。发送国外无需报备,签名不限制。签名最好以【253 云通讯】为格式例子。
  • 发国外营销短信最好用英文或者当地语言,需要中文发送的话请联系商务确认你要发送的国家运营商是否支持中文。
  • 短信收到慢,或者收不到请联系对应商务或者客服,一般是号码格式错误,内容触发审核,或者国内号码黑名单。

2、接口加签方式

  1. 将请求头参数名 nonce 及所有请求体参数名(key)以 ASCII 码表顺序升序排列;
  2. 排序后把参数值非空的参数名(key)参数值(value)依次进行字符串拼接,拼接处不包含其他字符;
  3. 拼接成包含 kv 的长串后,在该长串的尾部拼接账号的 password,得到签名字符串的组装;
  4. 最后对签名字符串,使用 MD5 算法加密后,得到 MD5 加密密文后转为小写,即为请求头 sign 值

2.1加签代码示例

package com.angi;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.DigestUtils;

import java.util.Map;
import java.util.TreeMap;

/**
 * 参数进行加签验签
 */
public class SignUtil {
    private static final String SIGN = "sign";

    /**
     * 发送加签
     */
    public static String sendSign(String password, TreeMap<String, String> paramMap) {
        paramMap.remove(SIGN);
        StringBuilder sb = new StringBuilder();
        for (Map.Entry<String, String> entry : paramMap.entrySet()) {
            if (StringUtils.isNotBlank(entry.getValue())) {
                sb.append(entry.getKey());
                sb.append(entry.getValue());
            }
        }
        return DigestUtils.md5DigestAsHex((sb.toString() + password).getBytes()).toLowerCase();
    }

    /**
     * 发送验签
     */
    public static boolean verifySendSign(String password, TreeMap<String, String> paramMap) {
        String sign = paramMap.remove(SIGN);
        String computed = sendSign(password, paramMap);
        return StringUtils.equals(sign, computed);
    }

    public static void main(String[] args) {
        /*发送加签验签*/
        String password = "4Z7bMS1eLI6895";
        TreeMap<String, String> paramMap = new TreeMap<>();
        paramMap.put("nonce", "222222");
        paramMap.put("account", "IM6742671");
        paramMap.put("mobile", "8618916198813");
        paramMap.put("msg", "test 666661 ");
        System.out.println(JSONObject.toJSONString(paramMap));
        String sign = sendSign(password, paramMap);
        System.out.println(sign);

        TreeMap<String, String> newParamMap = new TreeMap<>(paramMap);
        newParamMap.put(SIGN, sign);

        boolean validate = verifySendSign(password, newParamMap);
        System.out.println(validate);
    }
}

2.2DEMO文件

加密DEMO点此获取

3、发送短信接口

3.1协议说明

名称说明
协议HTTP POST
编码格式UTF8
Content-Typeapplication/json
URL(新加坡节点)https://sg-intapi.tig253.com/send/sms
URL(上海节点)https://intapi.tig253.com/send/sms

注:请根据账号归属节点请求对应的URL

3.2请求头

名称类型是否必填示例说明
signstring1234abcd7890qwer签名,请参照加签方式生成签名
noncestring1653043349000时间戳

3.3请求体

名称类型是否必填示例说明
accountstringI6000000API 账号,大写字母i开头,登录云通讯获取
mobilestring8615800000000手机号码,格式(区号+手机号码),例如:8615800000000,其中 86 为中国的区号,区号前不使用 00 开头,15800000000 为接收短信的真实手机号码。5-20 位
msgstring【253】Your verification code is:2530短信内容,长度不能超过 2000 个字符
senderIdstringSENDER0用户收到短信之后显示的发件人,国内不支持自定义,国外支持,但是需要提前和运营商沟通注册,具体请与 TIG 对接人员确定
uidstring123456客户自定义批次号,64 字以内
callBackUrlstringhttps://状态回执的回调地址,请传入完整带http协议头开头的地址,不传默认为空,请勿传入空格,否则会造成地址推送错误。地址可通过接口入参传入,也可在控制台手动配置,可查看控制台操作指引
tdFlagint1退订开启标识,1 开启;0 或 null 关闭

3.4响应

名称类型示例说明
codestring0状态码: 0-成功,非 0 标识失败
messagestring提交成功状态码说明
datastringnull消息体

返回示例-成功

{
  "code": "0",
  "message": "提交成功",
  "data": {
    "messageId": "162575412960104448"
  }
}

注:code 为响应状态码,可参照提交响应状态码对比

4、接口响应码

状态码描述
0提交成功
101账号不存在
102密码错误
103拉取条数格式错误
104拉取条数不在范围内
105批次编号大于128位
106短信内容长度错误(>3000)
108手机号码格式错误(>20或<5)
109手机号码个数错误
112产品配置错误
114请求ip和绑定ip不一致
115没有开通国内短信权限
116账号已删除或禁用
117接入号长度超过20位
119账号不在当前节点
123短信内容不能为空
124简介或验证码不能为空
125特定客户手机号码同一天不能超过十次
128账号长度错误(>50或<=0)
129产品价格配置错误
130未知异常
131超过日发送上限
132超过月发送上限
133超过发送上限
134超过反投诉限制
150子账号依附计费配置有误
151报价国家未开启
152产品账号报价不存在
153依附计费的主账号不存在
154产品账号计费方式不存在
155账户未开通统一计费
156产品账号已禁用
157账户余额不足
158授信额度不足
159客户未开通统一钱包

5、状态报告状态码

状态码描述
DELIVRD短信发送成功
UNKNOWN未知短信状态
REJECTD短信被短信中心拒绝
MBBLACK目的号码是黑名单号码
SM11网关验证号码格式错误
SM12我方验证号码格式错误
其他网关内部状态

6、计费规则说明

  1. 国际短信不支持 emoji 表情
  2. 编辑器中空格都会以”."表示,如出现不带”.”的空格则说明有隐藏代码,会导致 1 条短信算成 2 条的风险请留意。
  3. 国际号码必须添加对应国家的区域号,例如中国号码 86138****1234,86 为中国区号。
  4. 发送中国号码时,短信内容必须以[签名]开头,签名内容为: 公司或品牌名称,字数要求 2-80 个字符,运营商规定必填。
  5. 发送中国号码段时,内容合法,不能发送房产、发票、移民等国家法律法规严格禁止的内容。
  6. 超链接地址请写在短信内容中,便于核实,部分安卓系统存在超链接识别问题,需在超链接前后添加空格。
  7. 短信中含非英文字符按中文计费。
24小时热线 400-9669-253