步骤

  • 一、开通腾讯云短信服务
  • 二、申请签名前的准备(申请公众号)
  • 三、创建签名和模板
  • 四、腾讯云API实现发送短信
  • 五、使用springboot进行调用
  • 六、可能会报的错误

一、开通腾讯云短信服务

在腾讯云官网找到短信服务,开通

二、申请签名前的准备(申请公众号)

三、创建签名和模板

1、创建签名

2、填写信息,然后确定,等审核

3、创建模板

4、填写信息,等待审核

一般来说模板还是比较容易成功的,一般来说是签名难通过点。

四、腾讯云API实现发送短信

1、腾讯云在线测试
在线测试地址:腾讯云api测试

在 短信控制台 添加应用后生成的实际 SdkAppId

填写测试api的参数

点击右边在线调用

发送请求

成功
获取秘钥
官网链接:api秘钥



复制下来,后面要使用!

五、使用springboot进行调用

我们可以直接在上面测试那里生成代码,然后复制到springboot进行使用,也可以参照官方文档进行操作。
API文档链接地址:API文档
1、导入依赖

<!--腾讯云短信依赖-->
<!-- https://mvnrepository.com/artifact/com.tencentcloudapi/tencentcloud-sdk-java -->
<dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.423</version>
</dependency>

注意:不要使用4.0.X版本,不是最新的
2、编写application.properties配置

#腾讯云短信服务参数
#腾讯云账户secretId,secretKey
tencent.sms.keyId=
tencent.sms.keysecret=
#短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId
tencent.sms.smsSdkAppId=
#短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名
tencent.sms.signName=
#模板 ID: 必须填写已审核通过的模板 ID
tencent.sms.templateId=

3、创建工具类

/*** 实现了InitializingBean接口,当spring进行初始化bean时,会执行afterPropertiesSet方法*/
@Component
public class ConstantSmsUtils implements InitializingBean {@Value("${tencent.sms.keyId}")private String secretID ;@Value("${tencent.sms.keysecret}")private String secretKey ;@Value("${tencent.sms.smsSdkAppId}")private String smsSdkAppID ;@Value("${tencent.sms.signName}")private String signName ;@Value("${tencent.sms.templateId}")private String templateID ;public static String SECRET_ID;public static String SECRET_KEY;public static String SMSSDKAPP_ID;public static String SIGN_NAME;public static String TEMPLATE_ID;@Overridepublic void afterPropertiesSet() throws Exception {SECRET_ID = secretID;SECRET_KEY = secretKey;SMSSDKAPP_ID = smsSdkAppID;SIGN_NAME = signName;TEMPLATE_ID = templateID;}
}

生成随机数字的utils

/*** 获取随机数* * @author qianyi**/
public class RandomUtil {private static final Random random = new Random();private static final DecimalFormat fourdf = new DecimalFormat("0000");private static final DecimalFormat sixdf = new DecimalFormat("000000");//生成4位随机数public static String getFourBitRandom() {return fourdf.format(random.nextInt(10000));}//生成6位随机数public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));}}

4、编写发送短信API
controller

@Api(tags = {"短信发送"})
@RestController
@RequestMapping("/edusms/sms")
@CrossOrigin
public class SmsController {@Autowiredprivate SmsService smsService;@ApiOperation(value = "发送短信的方法")@GetMapping("send/{phone}")public R sendSms(@ApiParam(name = "phone",value = "手机号码",required = true)@PathVariable String phone){//调用service发送短信的方法boolean isSend = smsService.send(phone);if (isSend){return R.ok();}else {return R.error().message("短信发送失败!");}}
}

serviceImpl

    //发送短信的方法@Overridepublic boolean send(String phone) {//判断手机号是否为空if (StringUtils.isEmpty(phone)){return false;}try{// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取Credential cred = new Credential(ConstantSmsUtils.SECRET_ID, ConstantSmsUtils.SECRET_KEY);// 实例化一个http选项,可选的,没有特殊需求可以跳过HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("sms.tencentcloudapi.com");// 实例化一个client选项,可选的,没有特殊需求可以跳过ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);// 实例化要请求产品的client对象,clientProfile是可选的  第二个参数是地域信息SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);// 实例化一个请求对象,每个接口都会对应一个request对象SendSmsRequest req = new SendSmsRequest();//设置固定的参数req.setSmsSdkAppId(ConstantSmsUtils.SMSSDKAPP_ID);// 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppIdreq.setSignName(ConstantSmsUtils.SIGN_NAME);//短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名req.setTemplateId(ConstantSmsUtils.TEMPLATE_ID);//模板 ID: 必须填写已审核通过的模板 ID/* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
//            String sessionContext = "xxx";
//            req.setSessionContext(sessionContext);//设置发送相关的参数String[] phoneNumberSet1 = {"+86"+phone};req.setPhoneNumberSet(phoneNumberSet1);//发送的手机号//生成6位数随机验证码String verificationCode = RandomUtil.getSixBitRandom();String[] templateParamSet1 = {verificationCode, "5"};//模板的参数 第一个是验证码,第二个是过期时间req.setTemplateParamSet(templateParamSet1);//发送验证码//发送短信// 返回的resp是一个SendSmsResponse的实例,与请求对象对应SendSmsResponse resp = client.SendSms(req);System.out.println("resp"+resp);// 输出json格式的字符串回包System.out.println(SendSmsResponse.toJsonString(resp));return true;} catch (TencentCloudSDKException e) {e.printStackTrace();return false;}}
}

5、使用swagger测试接口

六、可能会报的错误

Spring Boot读取application.properties可能会中文乱码
解决方法:idea设置编码格式

使用腾讯云发送短信API接口实现(完整流程)相关推荐

  1. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  2. python项目对接腾讯云发送短信

    python项目对接腾讯云发送短信 先安装需要的包 pip install tencentcloud-sdk-python # -*- coding: utf-8 -*- # pip install ...

  3. 腾讯云发送短信验证码服务

    腾讯云发送短信验证码服务 1.注册腾讯云的账号 在腾讯云的官网:https://cloud.tencent.com/注册一个腾讯云的账号,就是日常的注册流程(这里就不贴图了),不过要实名认证啥的,认证 ...

  4. QT POST方法:以使用腾讯云发送短信为例

    QT POST方法:以使用腾讯云发送短信为例 1.准备 2.随机数 3.时间戳 4.哈希算法 5.签名方法 6.POST结合使用 POST方法是制作软件中常用的一个方法,而验证码短信在各种注册操作中需 ...

  5. qpython3h手机版怎么发短信_python如何使用腾讯云发送短信

    腾讯云方面的申请和流程都比较简单,基本都是可视化操作的,这里就不在赘述了.这篇文章着重讲解怎么用python实现调用. 我假设你已经满足了以下几个前提 + 已经开通了腾讯云短信业务 + 创建好了短信签 ...

  6. python调用qq发送短信_使用腾讯云发送短信

    使用腾讯云发送短信 第一次注册使用白送你200条,美滋滋 在腾讯云平台申请 点点点操作就完事了,要想发送短信,必须要申请签名和模板.签名类型可以使用网站,公众号,小程序,app 填好信息,上传指定的截 ...

  7. thinkphp5使用腾讯云发送短信验证码服务

    1.打开腾讯云官网开通短信服务:https://console.cloud.tencent.com/sms/smslist,需要实名验证 2.下载相对应的sdk文件,我这里是php文件 3.解压后将以 ...

  8. php 腾讯短信接口api,浅谈PHP使用腾讯云发送短信

    在开发过程中总会遇到需要发送短信的需求,以下介绍使用腾讯云短信api来发送短信的详细过程. 1.登录腾讯云,在应用列表里创建你的应用,输入你的应用名称,应用简介 2.点击应用,获取应用的SDK App ...

  9. 腾讯云发送短信验证码

    腾讯云短信服务下载源码 maven配置 <dependency><groupId>com.github.qcloudsms</groupId><artifac ...

最新文章

  1. 20165219 预备作业3 Linux安装及学习
  2. window上安装elasticserach
  3. 华为鸿蒙系统明年公测,华为终于发布新系统,即将与安卓系统告别,这批机型可以申请公测...
  4. 什么是java中的枚举法_enum枚举javajava,enum枚举使用详解+,总结
  5. 升序排序中国_干货满满!6行python代码挑战展示2020下半年中国最娱乐的人气男明星人气排行榜top10!...
  6. steghide隐写术
  7. centos6.8安装httpd后无法访问
  8. OCP 11G 051题库解析笔记-总
  9. 《SQL Server 必知必会》读书笔记
  10. linux tomcat 配置数据库,tomcat把项目放在root下root.xml配置数据库
  11. pyinstaller与anaconda python_python – 在Anaconda安装后运行pyinstaller导致ImportError:没有名为’pefile’的模块...
  12. Please make sure you have the correct access rights and the repository exists.
  13. matlab 和 ampl 结合,优化模型与AMPL案例.ppt
  14. 高数 吉米多维奇 785
  15. 便利店“三方会战”,谁是最后赢家?
  16. 游戏逆向 修改植物大战僵尸阳光值
  17. unity3d内建着色器源码解析(一)
  18. 血淋淋的经验!2021做亚马逊测评是搭上末班车?还是成为新韭菜?
  19. 三重积分的球面坐标系的体积元素表示
  20. Vsftpd配置文件解析

热门文章

  1. Educational Codeforces Round 96 (Rated for Div. 2) C. Numbers on Whiteboard///思维
  2. CF1550E Stringforces
  3. Rinne Loves Edges
  4. [TJOI2008]彩灯
  5. test 7 3-22 2021省选模拟赛seven
  6. P6624-[省选联考2020A卷]作业题【矩阵树定理,欧拉反演】
  7. P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】
  8. 51nod-猴猴吃香蕉【dp】
  9. jzoj4673,CF578D-LCS again【统计,字符串,容斥】
  10. POJ2279-Mr. Young's Picture Permutations【线性dp】