Skip to main content

批量发送API

提示:#

  • 因为运营商政策,请先在后台完成企业认证、报备签名、模板及做相关设置,再开发 API。
  • 批量接口上限为1000,发送验证码短信不建议使用一次发送多条,可能会造成验证码发送延迟。

HTTP 头信息(具体参考调用说明):#

    Accept:application/json;charset=utf-8;    Content-Type:application/json;charset=utf-8;    X-SIGNATURE: $signature;    X-APIKEY: $APIKEY;    X-TIMESTAMP: $timestamp;    X-NONCE: $nonce;

请求#

    URL:`https://gateway.yihuitong.top/openapi/sms/batchSend`    访问方式:POST

请求参数#

参数名类型是否必传是否默认开放描述示例
dataobject[]数据对象
callbackUrlstring短信发送后将向这个地址推送(运营商返回的)发送报告。 如推送地址固定,建议在"数据推送与获取”做批量设置。 如后台已设置地址,且请求内也包含此参数,将以请求内地址为准http://your_receive_url_address

data[] 参数子项#

参数名类型是否必传是否默认开放描述示例
textstring需要发送的短信内容,需要与已审核的短信模板相匹配。短信内容须在最前面携带审核通过的签名。【易荟通】尊敬的用户:您的验证码:707892,工作人员不会索取,请勿泄漏。
mobilestring接收的手机号,不需要带+86 前缀18011111111
busIdstring该条短信在您业务系统内的 ID,如订单号或者短信发送记录流水号。10001

代码示例(头信息加密验签参考)#


/** * 批量发送短信,相同内容多个号码,智能匹配短信模板 * * @param apikey 成功注册后登录云片官网,进入后台可查看 * @param text   需要使用已审核通过的模板或者默认模板 * @param mobile 接收的手机号,多个手机号用英文逗号隔开 * @return json格式字符串 */public static String batchSend(String apikey, String text, String mobile) throws NoSuchAlgorithmException ,  InvalidKeyException  {        String smsUrl = "https://gateway.yihuitong.top/openapi/sms/batchSend";        String nonce = "bc9efee185e64ab9bc0b07a2785c4660";        Integer timestamp = 1626856279;        String apikey = "123456789";        String secretKey = "1234567890";        String method = "POST";        String path = "/openapi/sms/batchSend";        String contentType = "json";        List<Map<String, String>> dataList = new ArrayList<>();                Map<String, String> dataMap = new HashMap<>();        dataMap.put("text", "【易荟通】尊敬的用户:您的验证码:707892,工作人员不会索取,请勿泄漏。");        dataMap.put("mobile", "11111111111");        dataList.add(dataMap);                Map<String, Object> parameters = new HashMap<>();        parameters.put("data", dataList);                        StringBuilder sb = new StringBuilder();        sb.append(method).append("\n")        .append(path).append("\n")        .append(apikey).append("\n")        .append(timestamp).append("\n")        .append(nonce).append("\n");                        if(parameters!=null && !parameters.isEmpty()) {                        if("json".equals(contentType) ) {                sb.append(JSON.toJSONString(parameters)).append("\n");            }else {                String canonical_query_string = formatUrlMap(parameters, true, false);                sb.append(canonical_query_string).append("\n");            }                    }        
        Mac hasher = Mac.getInstance("HmacSHA256");        hasher.init(new SecretKeySpec(secretKey.getBytes(), "HmacSHA256"));        byte[] hash = hasher.doFinal(sb.toString().getBytes());                                Map<String,String> headers = new HashMap<String, String>();        headers.put("X-SIGNATURE", DatatypeConverter.printBase64Binary(hash));        headers.put("X-APIKEY", apikey);        headers.put("X-TIMESTAMP", timestamp.toString());        headers.put("X-NONCE", nonce);                return HttpUtil.postForJson(smsUrl, parameters, headers);//请自行使用post方式请求,可使用Apache HttpClient}

响应参数#

名称类型描述
successboolean是否请求成功 false 为接口请求失败,请求失败 data 中无数据
errorCodestring错误码 200 代表成功
errorMessagestring错误提示
dataobject[]报告数据,是一个数组;格式参考下面

data 响应参数#

名称类型描述
totalCountinteger扣费条数,70 个字一条,超出 70 个字时按每 67 字一条计
totalFeedouble扣费金额,单位:元 类型:双精度浮点型/double
unitstring计费单位;例如:“RMB”
dataobject[]短信发送返回的数据

短信发送 data 响应参数#

名称类型描述
sidlong(64 位)短信 id,64 位整型, 对应 Java 和 C#的 long,不可用 int 解析
codestring00-提交中;01-提交失败;02-提交成功
errorCodestring提交失败错误码
countinteger发送成功短信的计费条数(计费条数:70 个字一条,超出 70 个字时按每 67 字一条计费)
feedouble扣费金额,单位:元,类型:双精度浮点型/double
mobilestring发送手机号
msgstring例如""发送成功"",或者相应错误信息
busIdstring该条短信在您业务系统内的 ID,如订单号或者短信发送记录流水号。
unitstring计费单位;例如:“RMB”

JSON 响应示例#

{     "success": true,    "errorCode": "200",    "errorMessage": "成功",    "data": {      "totalCount": 1,      "totalFee": 0.0500,      "unit": "RMB",      "data": [        {          "code": "02",          "errorCode": "",          "count": 1,          "fee": 0.05,          "unit": "RMB",          "mobile": "1234567890123456",          "msg": "",          "busId": "123456",          "sid": 42007252230        },        {          "code": "01",          "errorCode": "4404",          "count": 0,          "fee": 0,          "mobile": "15800000000",          "msg": "扣款失败",          "busId": "123456",          "sid": 0,          "unit": "RMB"        }      ]    }}

errorCode 状态码列表#

errorCode描述
4001用户信息不正确
4100参数错误
4300金额不足
4301账号未认证,请先认证通过后访问
4400短信签名错误
4401模板错误
4402提交失败
4404扣费失败
5000内部错误