帮助文档
https://github.com/qcloudsms/qcloudsms_java
注册SDK服务,免费有100条短信,按照提示创建签名和短信模板。
我是使用微信公众号,然后截图微信公众号后台创建的签名。
引入maven依赖
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
这里刚开始遇到问题,pom文件又不会下载依赖了,老是报错,后来换了spring的版本好了。
完成代码部分
在UserConller里面创建发送短信的核心类。
import java.io.IOException;
import org.json.JSONException;
import org.springframework.stereotype.Controller;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.httpclient.HTTPException;
//@Controller
public class UserController {
//发送短信
private static void SMS()
{
//手机
String phoneNumber="18738218600";
//短信内容
int template=613909;
//拼接的参数,根据短信模板
String params[]=new String[1];
//签名的内容 短信模板id
//验证码
String code="1234";
params[0]=code;
//签名内容,这里不是ID了
String sing="悲伤的小霉公众号";
//Ccl学习项目验证码为:{1234},如非本人操作,请忽略此操作。
//拿到发送短信的核心类,两个参数分别是腾讯云的SDK AppID和 App Key
SmsSingleSender ssender = new SmsSingleSender(xxxxxxxxx, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
try {
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber, templateId, params, sign, "", "");
System.out.println(result);//查看是否出错
} catch (JSONException | HTTPException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
代码注释里面写的很清楚了,主要是要知道send方法里面几个需要传入的是什么参数,第一个是国家代码,中国的是86,SmsSingleSender需要传入的是腾讯云里面的SDK AppID和App Key,注意参数SDK AppID的类型传入的时候要int类型,App Key要String类型
测试发送验证码
在所在类里面创建main方法,直接调用该方法。
public static void main(String[] args) {
SMS();
}
运行的时候,我遇到Java不信任SSL证书的bug,上网去查找方法,一般有两种,一直是自己手动添加信任,还有是直接忽略,都比较麻烦,最后我用第二种方法解决了。这个之后在再博文里面总结。最后验证码是成功发送了。