SMS SDK

注意:假设已经按照SmsClient示例创建好了一个SmsClient类的实例对象client,且可以直接使用。

发送短信

描述

实现短信下发功能,一次支持提交一个手机号。

注意:

下发短信前,需要先申请签名和短信模板,并通过审核。系统内置模板可直接使用。

参数说明

参数名称 类型 是否必需 描述
invokeId String 发送使用签名的调用ID。e.g. dkwL6mUT-7JNv-H5Z3
phoneNumber String 手机号码,e.g. 13800138000
templateCode String 短信模板ID,模板申请成功后自动创建,全局内唯一。e.g. smsTpl:6nHdNumZ4ZtGaKO
contentVar String 模板变量内容,用于替换短信模板中定义的变量,为json字符串格式

代码示例

// 定义请求参数
String invokeId = "dkwL6mUT-7JNv-H5Z3"; // 发送使用签名的调用ID
String phoneNumber = "13800138000"; // 要发送的手机号码(只能填写一个手机号)
String templateCode = "smsTpl:d60a7867db0b4225b3aff3d44845d880"; // 本次发送使用的模板Code
Map<String, String> vars = new HashMap<String, String>(); // 若模板内容为:您的验证码是${code}
vars.put("code", "986082");

//实例化请求对象
SendMessageV2Request request = new SendMessageV2Request();
request.withInvokeId(invokeId)
        .withPhoneNumber(phoneNumber)
        .withTemplateCode(templateCode)
        .withContentVar(vars);

// 发送请求
SendMessageV2Response response = smsClient.sendMessage(request);

// 解析请求响应 response.isSuccess()为true 表示成功
if (response != null && response.isSuccess()) {
    //  submit success
} else {
    // fail
}

查询短信信息

描述

查询短信流水信息。

参数说明

  • 请求参数
参数名称 类型 是否必需 描述
messageId String URL参数。短信发送流水号,由系统生成。
  • 返回参数
返回值名称 类型 描述
messageId String 请求中携带的短信流水号。
content String 发送的短信内容。
receiver List 短信收信人,采用json数组格式传递,形如[“13800238000”,”13800138001”]。
sendTime string 短信发送时间,形如:2014-06-12T10:08:22Z。

代码示例

QueryMessageDetailRequest request = new QueryMessageDetailRequest();// 构建request对象
    request.setMessageId("待查询的messageId");// 设置待查询的messageId

    QueryMessageDetailResponse querResponse = client.queryMessageDetail(request);// 请求Server

短信模板申请

描述

申请创建新的短信模板,并生成相应的模板ID。短信模板的申请需要BCE管理员审核,审核通过后的短信模块方可使用。

注意:

短信模板需要后台人工审核,用户需关注短信模板的审核结果。

参数说明

参数名称 类型 是否必需 描述
invokeId String 短信模板ID,模板申请成功后自动创建,全局内唯一。e.g. smsTpl:6nHdNumZ4ZtGaKO
name String 模板名称,长度不大于22个字符
content String 模板变量内容,长度不大于300个字符,模板变量才使用${key}的形式,如:您的验证码是${code}
profileId String 多应用场景用户申请时需要填写,

代码示例

//实例化请求对象
CreateTemplateRequest request = new CreateTemplateRequest();
request.withInvokeId("dkw86m01T-26Nv9-H5Z3") // 模板对应的签名调用ID
        .withName("验证码模板")  // 模板名称
        .withContent("您的验证码是${vCode},看完马上删了"); // 模板内容

// 发送请求
CreateTemplateResponse response = smsClient.createTemplate(request);

// 解析请求响应 response.isSuccess()为true 表示成功
if (response != null && response.isSuccess()) {
    // success: do something
    // 获取新创建的模板ID
    String templateCode = response.getData().getTemplateId();
} else {
    // fail: do something
}

删除短信模板

描述

删除既有的短信模板,包括审核中、已审核的模板。

参数说明

  • 请求参数
参数名称 类型 是否必需 描述
templateId String URL参数。既有短信模板的ID,全局内唯一。形如:smsTpl:6nHdNumZ4ZtGaKO。需要urlencode。

代码示例

DeleteTemplateRequest request = new DeleteTemplateRequest();// 构建request对象
    request.setTemplateId("待删除的模板ID");// 设置待删除的模板ID

    client.deleteTemplate(request);// 请求Server

获取短信模板列表

描述

获取既有的短信模板列表,按照创建时间逆序排序。

参数说明

  • 返回值
返回值名称 类型 描述
templateList list 短信模板列表,templateInfo具体格式参见下表。

templateInfo格式如下:

返回值名称 类型 描述
templateId String URL参数。既有短信模板的ID,全局内唯一。形如:smsTpl:6nHdNumZ4ZtGaKO。
name String 短信模板名称。
content String 短信模板内容,长度限定在70字符以内,变量采用如下格式描述:${VAR}。
status String 短信模板状态,可选值包括:processing(审核中)、valid(审核成功)、unvalid(审核失败)。
createTime Time 短信模板创建时间,形如:2014-06-12T10:08:22Z。
createTime Time 短信模板更新时间,形如:2014-06-12T10:08:22Z。

代码示例

ListTemplateResponse response = client.listTemplate(new SmsRequest());// 请求Server

    List<GetTemplateDetailResponse> list = response.getTemplateList();// 遍历
    for(GetTemplateDetailResponse template : list){
        System.out.println(template.getTemplateId());// 打印模板ID
    }

获取短信模板信息

描述

获取既有短信模板信息。

参数说明

  • 请求参数
参数名称 类型 是否必需 描述
templateId String URL参数。既有短信模板的ID,全局内唯一。形如:smsTpl:6nHdNumZ4ZtGaKO。需要urlencode。
  • 返回值
返回值名称 类型 描述
templateId String URL参数。既有短信模板的ID,全局内唯一。形如:smsTpl:6nHdNumZ4ZtGaKO。
name String 短信模板名称。
content String 短信模板内容,长度限定在70字符以内,变量采用如下格式描述:${VAR}。
status String 短信模板状态,可选值包括:processing(审核中)、valid(审核成功)、unvalid(审核失败)。
createTime Time 短信模板创建时间,形如:2014-06-12T10:08:22Z。
updateTime Time 短信模板更新时间,形如:2014-06-12T10:08:22Z。

代码示例

GetTemplateDetailRequest request = new GetTemplateDetailRequest();// 构建request对象
    request.setTemplateId("待查询的模板ID");// 设置待查询的模板ID

    GetTemplateDetailResponse response = client.getTemplateDetail(request);// 请求Server

查询配额

描述

查询用户的发送限制配额。

参数说明

  • 返回值
返回值名称 类型 描述
maxSendPerDay int 用户在单日内发送的最多短信数目,按自然日计时。
maxReceivePerPhoneNumberDay int 单终端用户在单日内允许接收的最大短信数,按自然日计时。
sentToday int 用户在最近当天内已发送的短信数目,按自然日计时。

代码示例

QueryQuotaResponse response = client.queryQuota(new SmsRequest());

查询单终端用户接收的短信信息

描述

查询单终端用户接收的短信信息。

参数说明

  • 请求参数
参数名称 类型 是否必需 描述
phoneNumber String URL参数。终端用户的手机号,仅支持单个用户,格式要求只包含数字,形如13800138000。
  • 返回值
返回值名称 类型 描述
maxReceivePerPhoneNumberDay int 单终端用户在24小时内允许接收的最大短信数,按自然日计时。
receivedToday int 单终端用户在最近24小时内已接收的短信数目,按自然日计时。

代码示例

StatReceiverRequest request = new StatReceiverRequest();//构造request对象
    request.setPhoneNumber("13000000000");// 设置终端号码

    StatReceiverResponse response = client.statReceiver(request);// 请求Server