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

1.注册腾讯云的账号

  • 在腾讯云的官网:https://cloud.tencent.com/注册一个腾讯云的账号,就是日常的注册流程(这里就不贴图了),不过要实名认证啥的,认证一下就好了

2.进入短信服务的界面

3.创建签名

  • 一般签名审核会很严格,不过腾讯云相比阿里云会友好很多,阿里云只有自己的项目上线备案后才可以申请签名,而腾讯云的签名申请一个个人的公众号提供公众号的管理界面截图即可申请成功
  • 创建成功后是长这样(这里的ID和内容后面会用到)

4.创建模板

  • 模板审核相对就比较简单了一般按照他们提供标准的模板选一个就会审核通过的
  • 创建成功后长这样(这里的ID在后面有用)
  • 还有要用到的SdkAppid

5.创建自己的密钥

  • 根据他们网站的提示一步一步操作之后
  • 最后的密钥是长这样的(这里的secreID/key在后面会用到)

6.根据官网的SDK和API自己封装一个发送短信验证码的工具类

  • 导入maven坐标
<dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.62</version><!-- 注:这里只是示例版本号,请获取并替换为 最新的版本号 -->
</dependency>
  • 自己封装一个工具类(我这里是根据官网的发送短信的SDK进行了修改)
package com.sang.untils;import com.aliyuncs.exceptions.ClientException;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
//导入可选配置类
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
// 导入 SMS 模块的 client
import com.tencentcloudapi.sms.v20190711.SmsClient;
// 导入要请求接口对应的 request response 类
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
/*** Tencent Cloud Sms Sendsms* https://cloud.tencent.com/document/product/382/38778**/
public class TengXunSMSUtils{public static final String VALIDATE_CODE = "866988";public static void sendShortMessage(String templateCode, String phoneNum,String param) throws ClientException {try {/* 必要步骤:* 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey* 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值* 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人* CAM 密钥查询:https://console.cloud.tencent.com/cam/capi*/Credential cred = new Credential("这里填入自己的SecretID", "这里填入自己的SecretKey");// 实例化一个 http 选项,可选,无特殊需求时可以跳过HttpProfile httpProfile = new HttpProfile();/* SDK 默认使用 POST 方法。* 如需使用 GET 方法,可以在此处设置,但 GET 方法无法处理较大的请求 */httpProfile.setReqMethod("POST");/* SDK 有默认的超时时间,非必要请不要进行调整* 如有需要请在代码中查阅以获取最新的默认值 */httpProfile.setConnTimeout(60);/* SDK 会自动指定域名,通常无需指定域名,但访问金融区的服务时必须手动指定域名* 例如 SMS 的上海金融区域名为 sms.ap-shanghai-fsi.tencentcloudapi.com */httpProfile.setEndpoint("sms.tencentcloudapi.com");/* 非必要步骤:* 实例化一个客户端配置对象,可以指定超时时间等配置 */ClientProfile clientProfile = new ClientProfile();/* SDK 默认用 TC3-HMAC-SHA256 进行签名* 非必要请不要修改该字段 */clientProfile.setSignMethod("HmacSHA256");clientProfile.setHttpProfile(httpProfile);/* 实例化 SMS 的 client 对象* 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */SmsClient client = new SmsClient(cred, "ap-guangzhou",clientProfile);/* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数* 您可以直接查询 SDK 源码确定接口有哪些属性可以设置* 属性可能是基本类型,也可能引用了另一个数据结构* 推荐使用 IDE 进行开发,可以方便地跳转查阅各个接口和数据结构的文档说明 */SendSmsRequest req = new SendSmsRequest();/* 填充请求参数,这里 request 对象的成员变量即对应接口的入参* 您可以通过官网接口文档或跳转到 request 对象的定义处查看请求参数的定义* 基本类型的设置:* 帮助链接:* 短信控制台:https://console.cloud.tencent.com/smsv2* sms helper:https://cloud.tencent.com/document/product/382/3773 *//* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666 */String SdkAppid = "这里填入的是SdkAppid";req.setSmsSdkAppid(SdkAppid);/* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 */String sign = "这里填自己申请的签名";req.setSign(sign);/* 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */String senderid = "";req.setSenderId(senderid);/* 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID */req.setTemplateID(templateCode);/* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]* 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/String[] phoneNumber = {"+86"+phoneNum+""};req.setPhoneNumberSet(phoneNumber);/* 模板参数: 若无模板参数,则设置为空*/String[] templateParams = {param};req.setTemplateParamSet(templateParams);/* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的* 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */SendSmsResponse res = client.SendSms(req);// 输出 JSON 格式的字符串回包System.out.println(SendSmsResponse.toJsonString(res));// 可以取出单个值,您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义System.out.println(res.getRequestId());} catch (TencentCloudSDKException e) {e.printStackTrace();}}}
  • 最后写个主方法测试一下
public static void main( String[] args ) throws ClientException {String templateID = "自己的短信模板ID";String phoneNumbers = "自己的手机号";String param="666666";sendShortMessage(templateID,phoneNumbers,param);}
  • 下面就是我收到的验证码

    嘻嘻嘻到这就是用腾讯云发送短信验证码的全部过程,当然验证码一般都是随机的六位数下面提供一个生成随机六位数的方法可以把随机生成的六位数作为参数传入自己封装的方法内
 /*** 随机生成验证码* @param length 长度为4位或者6位* @return*/public static Integer generateValidateCode(int length){Integer code =null;if(length == 4){code = new Random().nextInt(9999);//生成随机数,最大为9998if(code < 1000){code = code + 1000;//保证随机数为4位数字}}else if(length == 6){code = new Random().nextInt(999999);//生成随机数,最大为999999if(code < 100000){code = code + 100000;//保证随机数为6位数字}}else{throw new RuntimeException("只能生成4位或6位数字验证码");}return code;}
  • 到这就真的完成了!!!

腾讯云发送短信验证码服务相关推荐

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

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

  2. TP6 腾讯云发送短信验证码配置详解

    一.发送注册验证码代码实现 参考腾讯云文档 https://cloud.tencent.com/document/product/382/56058 1.通过composer安装 composer r ...

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

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

  4. 短信宝、腾讯云 发送短信验证码

    安装composer扩展包 composer require mrwanghongda/sms-sdk 使用 use App\Factory\SmsFactory;/*** 短信宝*/const SM ...

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

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

  6. java短信内容加链接_Java加腾讯云实现短信验证码功能

    准备工作 1.选择服务 2.添加应用:我已经添加完了 3.点击应用名称 4.出现ID和Key 5.编辑短信创建签名 6.在第5步后 使用到的jar包: qcloudsms-1.0.2.jar com. ...

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

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

  8. 腾讯云实现短信验证码登录

    腾讯云实现短信验证码登录 腾讯云配置 后端逻辑实现 腾讯云配置 首先在腾讯云搜索短信 然后按要求创建短信签名,短信模板.短信模板很容易审核,但是签名比较复杂,需要按要求填写和上传相关信息.如果驳回可以 ...

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

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

最新文章

  1. php5.3 php7兼容,Centos搭建PHP7.0.x让php5.3和php7兼容共存教程
  2. 用Javascript隐藏超级链接的真实地址
  3. 将地址转换为链接的正则表达式(regex url href)
  4. 当 position:sticky 遇到 bootstrap 浮动布局时候的踩坑记录
  5. ROS知识【10】:ROS通信
  6. IIS Form 认证 保护HTML页面
  7. KubeVela 上手|让云端应用交付更加丝滑
  8. Eclipse安装TestNG插件
  9. 这6大核心技能,程序员升职加薪的利器
  10. 编造机中鼠标无法应用标题问题解答
  11. 深层神经网络——多层网络解决异或运算
  12. android java调用c_Android JNI简单实例(android 调用C/C++代码)
  13. 机器学习(八)——SVD推荐系统
  14. 数据库驱动程序是什么?
  15. Burpsuite插件开发
  16. 881. 救生艇-快速排序加贪心算法
  17. sketch如何做设计稿交互_Sketch交互设计入门到精通教程
  18. Swift实战-豆瓣电台(三)获取网络数据
  19. python seo编程_「SEO及应用编程」开课!
  20. python年份天干地支代码_Python------天干地支纪年及星座计算

热门文章

  1. 类似百度输入框自动联想功能遇到的问题:Opera浏览器不支持拼音输入法时的keyup事件
  2. 数据库原理 复杂查询
  3. Google新三驾马车
  4. 广州住房公积金管理中心综合业务管理系统容灾项目中标公告
  5. 常用统计数学公式学习(1)方差与期望值
  6. digitalLogic_根据表达式画电路图的建议(与非门实现全加器实例)
  7. 【python】小游戏-下载即可玩
  8. 2020年每月工作日表_2020年工作场所技能再培训的诫命
  9. 阿里云账号实名认证、域名实名认证和域名备案有什么区别呢?
  10. 确保光纤跳线品质的四种测试