SMS-SDK
所有文档

          简单消息服务 SMS

          SMS-SDK

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

          发送短信

          描述

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

          注意:

          下发短信前,需要先申请签名和短信模板,并通过审核。

          参数说明

          参数名称 类型 是否必需 描述 取值示例
          mobile String 手机号码,支持单个或多个手机号,多个手机号之间以英文逗号分隔,一次请求最多支持200个手机号。国际/港澳台号码请按照E.164规范表示,例如台湾手机号以+886开头,”+“不能省略。 13800138000,13800138001,+886951234567
          template String 短信模板ID,模板申请成功后自动创建,全局内唯一 sms-tmpl-KyAUkV64619
          signatureId String 短信签名ID,签名表申请成功后自动创建,全局内唯一 sms-signQxkiwz88470
          contentVar String 模板变量内容,用于替换短信模板中定义的变量,为json字符串格式 {"param1":"123","param2":"abc"}
          custom String 用户自定义参数,格式为字符串,状态回调时会回传该值 -
          userExtId String 通道自定义扩展码,上行回调时会回传该值,其格式为纯数字串。默认为不开通,请求时无需设置该参数。如需开通请联系SMS帮助申请 123

          代码示例

            String ACCESS_KEY_ID = "626e6a284eac4e3f97cc30b38ffea6a4";
            String SECRET_ACCESS_KEY = "bacbedee5a604a939cc4c996371856b8";
            String ENDPOINT = "http://smsv3.bj.baidubce.com";
          
            SmsClientConfiguration config = new SmsClientConfiguration();
            config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));
            config.setEndpoint(ENDPOINT);
            SmsClient smsClient = new SmsClient(config);
          
            SendMessageV3Request request = new SendMessageV3Request();
            request.setMobile("13800138000");
            request.setSignatureId("sms-signQxkiwz88470");
            request.setTemplate("sms-tmpl-awKvRY85349");
            Map<String, String> contentVar = new HashMap<>();
            contentVar.put("code", "23456");
            contentVar.put("minute", "1");
            request.setContentVar(contentVar);
            SendMessageV3Response response = smsClient.sendMessage(request);
            // 解析请求响应 response.isSuccess()为true 表示成功
            if (response != null && response.isSuccess()) {
                //  submit success
            } else {
                // fail
            }

          创建签名

          描述

          创建一个新的签名申请

          参数说明

          参数名称 类型 是否必需 描述 取值示例
          content String 签名内容 百度
          contentType String 签名类型。
          Enterprise:企业
          MobileApp:移动应用名称
          Web:工信部备案的网站名称
          WeChatPublic:微信公众号名称
          Brand:商标名称
          Else:其他
          Enterprise
          description String 对于签名的描述 -
          countryType String 签名适用的国家类型
          DOMESTIC:国内
          INTERNATIONAL:国际/港澳台
          GLOBAL:全球均适用
          默认为DOMESTIC
          DOMESTIC
          signatureFileBase64 String 签名的证明文件经过base64编码后的字符串。文件大小不超过2MB。 -
          signatureFileFormat String 签名证明文件的格式,目前支持JPG、PNG、JPEG三种格式 JPG

          代码示例

            File file = new File("/Users/zhangjin11/Documents/6848f1cc055ef2720c599c982.png");
            String fileBase64Str = Base64.encodeBase64String(FileUtils.readFileToByteArray(file));
            CreateSignatureRequest request = new CreateSignatureRequest()
                    .withContent("BaiduCloud")
                    .withContentType("Enterprise")
                    .withCountryType("DOMESTIC")
                    .withDescription("test sdk")
                    .withSignatureFileBase64(fileBase64Str)
                    .withSignatureFileFormat("png");
            try {
                CreateSignatureResponse response = smsClient.createSignature(request);
                System.out.println(response.toString());
            } catch (BceServiceException e) {
                e.printStackTrace();
            }

          创建模板

          描述

          创建一个新的模板申请

          参数说明

          参数名称 类型 是否必需 描述 取值示例
          name String 模板名称 假日活动大促营销短信模板
          content String 模板内容 您的验证码是${code},将在${minutes}分钟后失效。
          smsType String 短信类型。见下方短信类型参数说明。 CommonNotice
          countryType String 适用国家类型
          DOMESTIC:国内
          INTERNATIONAL:国际/港澳台
          GLOBAL:全球
          DOMESTIC
          description String 模板描述 -

          代码示例

            CreateTemplateRequest request = new CreateTemplateRequest();
            request.withContent("${content}")
                    .withName("您的验证码是${code},将在${minutes}分钟后失效。")
                    .withCountryType("GLOBAL")
                    .withDescription("test sdk")
                    .withSmsType("CommonNotice");
            try {
                CreateTemplateResponse response = smsClient.createTemplate(request);
                System.out.println(response.toString());
            } catch (BceServiceException e) {
                e.printStackTrace();
            }

          设置配额或频控

          描述

          设置配额及频控

          参数说明

          参数名称 类型 是否必需 描述 取值示例
          quotaPerDay int 日(自然日)发送配额 99
          quotaPerMonth int 月(自然月)发送配额 999
          rateLimitPerMobilePerSignByMinute int 单手机号单签名每分钟(60s)发送频率 88
          rateLimitPerMobilePerSignByHour int 单手机号单签名每小时(60mins)发送频率 77
          rateLimitPerMobilePerSignByDay int 单手机号单签名每天(24h)发送频率 66

          代码示例

            UpdateQuotaRateRequest request = new UpdateQuotaRateRequest();
            request.setQuotaPerDay(99);
            request.setQuotaPerMonth(999);
            request.setRateLimitPerDay(88);
            request.setRateLimitPerHour(77);
            request.setRateLimitPerMinute(66);
            try {
                smsClient.updateQuotaRate(request);
            } catch (BceServiceException e) {
                e.printStackTrace();
            }