文档地址:
java 接入sms文档:https://cloud.tencent.com/document/product/382/13613
实例代码maven 引入 依赖
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.5</version>
</dependency>
java
package com.supermap.sms.service;
import java.io.IOException;
import org.json.JSONException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.supermap.redis.RedisUtil;
/**
* 腾讯云sms短信服务
*
* @author yushen
*
*/
@Component
public class SmsServive {
@Value("${sms.appids}")
private int appid; // 短信应用SDK AppID
@Value("${sms.appkey}")
private String appkey;// 短信应用SDK AppKey
@Value("${sms.templateId}")
private int templateId; // 短信模板ID,
@Value("${sms.smsSign}")
private String smsSign; // 签名内容`,而不是`签名ID`
@Autowired
private RedisUtil redisutil;
public void SmsServive() {
}
/**
* 短信发送验证码
*
* @param phone
* @param sign
*/
private void sendSms(String phone, String sign) {
try {
String[] params = { sign, "5" };// 数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
int appida = Integer.valueOf(appid);
int templateIda = Integer.valueOf(templateId);
SmsSingleSender ssender = new SmsSingleSender(appida, appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86", phone, templateIda, params,
smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
System.out.println(result);
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
}
/**
* 生成验证码
*
* @return
*/
private int scsmsSign() {
return (int) ((Math.random() * 9 + 1) * 1000);
}
//控制层调用这个方法实现
public int getsmsSign(String phone) {
String sgin = String.valueOf(scsmsSign());
redisutil.set(phone, sgin, 60000 * 5); //保存到redis中
sendSms(phone, sgin);//redis 发送
return 1;
}
// public static void main(String[] args) { //main测试
// SmsServive sc = new SmsServive();
// System.out.println(sc.appid+"--"+sc.appkey);
// String sgin = String.valueOf(sc.scsmsSign());
// String phone = "17600963051";
// sc.sendSms(phone, sgin);
// System.out.println("短信发送!");
// }
}
总结:
- 1.查看文档
- 2.根据文档创建 一些模板等内容
- 3.引入maven 依赖
- 4. 调用方法
- 5.将手机号和生成的验证码传入到redis
- 6.验证的时候通过验证redis中的内容 确定验证码是否正确
ok