版权声明:软妹儿❀ https://blog.csdn.net/weixin_43103859/article/details/96988102
最近项目做登陆的时候需要根据手机号发短信获取验证码,第三方使用的是腾讯云
首先,先有一个腾讯云账号,登陆进来点击控制台
点击短信
进去之后会让我们添加应用,应用一般都是公司项目产品的名字
添加完应用之后,点击你的应用----点击国内短信—短信内容配置–创建短信签名–创建短信正文,短信签名一般都是公司的简称,短信正文根据你的需求填写内容
创建完之后就开始上项目了.
第一步引入短信验证需要的jar包,maven的pom.xml加入:
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
第二步创建一个实体类,里面放着腾讯云发送短信需要的参数:签名,APP_ID以及APP_KEY,这些参数去腾讯云中拿贴到你的代码中
//APP_ID
final private int APP_ID="";
//校验短信发送请求合法性的密码
final private String APP_KEY="";
final private int YH_DL_TTEMPLATEID="8743";//腾讯云模版的ID ,比如说是8743(代表登陆)
final private int YH_ZC_TTEMPLATEID="8745";//腾讯云模版的ID ,比如说是8745(代表注册)
final String smsSign = "";//签名
第二步创建个工具类,我这边是创建了一个工具类,代码中需要发送短信的时候直接就调用就可以了,你也可以按照你的方式写:
签名一定要提供:qcloudsms.getSmsSign();这个就是去获取签名
public static String sendReservationMes(String number,String [] msg,int type ){
//创建的实体类,里面存放的是APP_Id 和签名和APP_key以及对应的腾讯模版Id,
Qcloudsms qcloudsms = new Qcloudsms();
try {
int TTEMPLATEID =0;
if(type==11) { //注册
TTEMPLATEID = qcloudsms.getYH_ZC_TTEMPLATEID();
}else if(type==12) {//登录
TTEMPLATEID = qcloudsms.getYH_DL_TTEMPLATEID();
}
SmsSingleSender ssender = new SmsSingleSender( qcloudsms.getAPP_ID(), qcloudsms.getAPP_KEY());
SmsSingleSenderResult result = ssender.sendWithParam("86", number,
TTEMPLATEID, msg, qcloudsms.getSmsSign(), "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
return result.errMsg;//OK
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
第三步:测试main方法(根据你的短信内容决定里面需要的参数)
例如:{1}(**验证码),你正在注册账号,如非本人操作请忽略.
{1}:代表的就是你的验证码,手机号是必须要传的
我这边有多条短信内容,所以type只是分辨发送的是哪一条内容.这里type=11代表的是注册的时候发送短信,
public static void main(String[] args) {
String phoneNumber="";//手机号
String radom=UUIDUtils.randomCode();//生成验证码的方法
String params[]= {radom};
int type=11;//注册 11代表注册
sendReservationMes(phoneNumber,params,type);
}
到这一步,腾讯云发送短信也就完成了,具体的业务逻辑根据你的需求运用到你项目中去