最近公司因业务需求安排了给我使用容联云的短信验证码功能,实现登录操作,因我前期没有认真读api 导致了很多不必要的错误。而且网上用springboot 整合容联云的方法我也没找到,然后现在自己整理一下,和大家分享一下。本人这里只分享代码如何编写不包括账号注册,如果使用免费注册,记得把自己的测试手机号添加到平台才可以接受短信。
1.首先,在自己的项目的pom文件中导入所需要的maven 依赖
<!--容联云通讯短信-->
<dependency>
<groupId>com.cloopen</groupId>
<artifactId>java-sms-sdk</artifactId>
<version>1.0.1</version>
</dependency>
<!-- 翻看了容联云的源码发现需要依赖谷歌的gson,如果不添加这个会报错 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2. 在容联云首页寻找开发文档如下图
3.然后创建一个发送短信的工具类,将自己提前注册申请好的ACCOUNT SID 和主账号令牌AUTH TOKEN及APPID 替换到xxx 的位置。
import java.util.HashMap;
import java.util.Random;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import org.apache.commons.lang3.RandomStringUtils;
/**
* 发送短信工具类
*
* @author songjian
* @Date 2020-03-10
*/
public class SDKTestSendTemplateSMS {
/**
* 发送验证码工具类
*
* @param phone 电话号码
* @return 验证码
*/
public static String sms(String phone) {
HashMap<String, Object> result = null;
CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
// 初始化服务器地址和端口,生产环境配置成app.cloopen.com,端口是8883.
restAPI.init("app.cloopen.com", "8883");
// 初始化主账号名称和主账号令牌,登陆云通讯网站后,可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
restAPI.setAccount("xxx", "xxx");
// 请使用管理控制台中已创建应用的APPID。
restAPI.setAppId("xxx");
String code = RandomStringUtils.randomNumeric(6);
//设置需要发送的手机号和发送的验证码及过期时间
result = restAPI.sendTemplateSMS(phone, "1", new String[]{code, "10"});
if ("000000".equals(result.get("statusCode"))) {
return code;
} else {
//异常返回输出错误码和错误信息
String s = "错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg");
return s;
}
}
}
4.测试的时候可以写一个main方法测试一下
public static void main(String[] args) {
String sms = sms("13999999999");
System.out.println(sms);
}
尾声
然后到此短信发送成功了。容联云的其他方式本人没有测试,感觉其他方式都很难用,超级难用,如果有不懂的可以给我留言。
评论区