点击▲关注 “爪哇笔记” 给公众号标星置顶
更多摄影技巧 第一时间直达
国内短信验证秒级触达,99%到达率。
国际/港澳台短信覆盖全球200+国家/地区,稳定可靠。
# 腾讯云短信平台tencentcloud.sms.secretId=**********tencentcloud.sms.secretKey=**********tencentcloud.sms.appId=**********
/** * 腾讯云短信 */@Data@ConfigurationProperties(prefix = "tencentcloud.sms")public class SendSmsProperties { private String secretId; private String secretKey; private String appId;}
/** * 短信发送 * 参考:https://cloud.tencent.com/document/product/382/43194#example * CAM 密钥查询:https://console.cloud.tencent.com/cam/capi * 短信控制台:https://console.cloud.tencent.com/smsv2 */@Component@Configuration@EnableConfigurationProperties({SendSmsProperties.class})public class SendSmsUtils { private final static Logger LOGGER = LoggerFactory.getLogger(SendSmsUtils.class); private SendSmsProperties sendSms; public SendSmsUtils(SendSmsProperties sendSms) { this.sendSms = sendSms; } private static String code = "OK"; /** * 发送 */ public void sand(Sms sms) { LOGGER.info("发送短信:{}",Arrays.toString(sms.getMobile())); try { /** * 实例化一个认证对象 */ Credential cred = new Credential(sendSms.getSecretId(), sendSms.getSecretKey()); /** * 实例化一个客户端配置对象 */ ClientProfile clientProfile = new ClientProfile(); /** * 实例化 SMS 的 client 对象 */ SmsClient client = new SmsClient(cred, "",clientProfile); /** * 实例化一个请求对象 */ SendSmsRequest req = new SendSmsRequest(); /** * SDK appId 短信-应用管理-应用列表 */ req.setSmsSdkAppid(sendSms.getAppId()); /** * 签名 短信-国内短信-签名管理,必须是审核通过的 */ req.setSign(sms.getSign()); /** * 模板ID 短信-国内短信-正文模板管理,必须是审核通过的 */ req.setTemplateID(sms.getTemplateId()); /** * 如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号 */ String[] phoneNumberSet = new String[sms.getMobile().length]; String[] array = sms.getMobile(); for(int i=0;i<phoneNumberSet.length;i++){ phoneNumberSet[i] = "+86"+array[i]; } req.setPhoneNumberSet(phoneNumberSet); /** * 模板参数{} */ String[] templateParams = sms.getParams(); req.setTemplateParamSet(templateParams); /** * 发送请求 */ SendSmsResponse res = client.SendSms(req); /** * 打印成功失败信息 */ SendStatus[] status = res.getSendStatusSet(); if(code.equals(status[0].getCode())){ LOGGER.info("短信:{}发送成功", Arrays.toString(sms.getMobile())); }else{ LOGGER.info("短信:{}发送失败", SendSmsResponse.toJsonString(res)); } } catch (TencentCloudSDKException e) { LOGGER.error("短信:{}发送失败,{}",Arrays.toString(sms.getMobile()),e.getMessage()); } }}
/** * 短信参数 */@Datapublic class Sms { /** * 签名 */ private String sign ; /** * 模板 */ private String templateId; /** * 手机号 */ private String[] mobile; /** * 模板参数 {} */ private String[] params;}
@RequestMapping("sms")public Result sms() { try { Sms sms = new Sms(); sms.setMobile(new String[]{"17788888888"}); sms.setParams(new String[]{"苍井空"}); sms.setSign("云图"); sms.setTemplateId("844589"); sendSmsUtils.sand(sms); } catch (Exception e) { return Result.error(); } return Result.ok();}
文章有问题?点此查看未经处理的缓存