在项目中集成一下短信功能。对比了几个服务商,最终选择了腾讯云,因为他每个月免费送100条。
一、申请API
1. 注册腾讯云实名认证后,开通短信服务。
2. 获取AppID和AppK待用。
3. 创建短信签名模板和短信正文模板。系统说半日内审核,我的不到五分钟就审核通过,点赞。
审核过程中可能需要上传一些证明,我用的是网站备案后台的截图。
二、调用API
1. 引入依赖包
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.5</version>
</dependency>
2、
发送短信工具类
import java.io.IOException;
import com.alibaba.fastjson.JSONException;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
public class SMSUtil {
public static String sendSMS(String phoneNumber,String code) {
String reStr = ""; //定义返回值
// 短信应用SDK AppID // 1400开头
int appid = ;
// 短信应用SDK AppKey
String appkey = "";
// 短信模板ID,需要在短信应用中申请
int templateId = ;
// 签名,使用的是`签名内容`,而不是`签名ID`
String smsSign = "";
try {
//参数,一定要对应短信模板中的参数顺序和个数,
String[] params = {code};
//创建ssender对象
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
//发送
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber,templateId, params, smsSign, "", "");
// 签名参数未提供或者为空时,会使用默认签名发送短信
System.out.println(result.toString());
if(result.result==0){
reStr = "success";
}else{
reStr = "error";
}
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}catch (Exception e) {
// 网络IO错误
e.printStackTrace();
}
return reStr;
}
}
3、Controller调用SMSUtils
@RequestMapping("/send")
@ResponseBody
public String send(String phone,String code){
String result = SMSUtil.sendSMS("17620937694", "123456");
if(result.equals("success")){
return "发送成功!";
}else{
return "发送失败!";
}
}
完成。。。。