目前阿里云的短信服务不支持本地项目了,必须是上线的项目申请签名才可通过。
分享一个可免费测试使用的平台,容联云的短信服务,注册送的金额大约可以用于接收133次短信。
1. 注册
2. 免费开发测试需要在"控制台—管理—号码管理—测试号码"绑定 测试号码
3. Demo
所需依赖:
<!--容联云-->
<dependency>
<groupId>com.cloopen</groupId>
<artifactId>java-sms-sdk</artifactId>
<version>1.0.1</version>
</dependency>
测试类:
import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import java.util.HashMap;
import java.util.Set;
public class testSend {
public static void main(String[] args) {
//生产环境请求地址:app.cloopen.com
String serverIp="app.cloopen.com";
//请求端口
String serverPort="8883";
//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN
String accountSId="";
String accountToken="";
//请使用管理控制台中已创建应用的APPID
String appId="";
CCPRestSmsSDK sdk=new CCPRestSmsSDK();
sdk.init(serverIp,serverPort);
sdk.setAccount(accountSId,accountToken);
sdk.setAppId(appId);
sdk.setBodyType(BodyType.Type_JSON);
//发送短信至手机号
String to="";
//短信模板
String templateId="1";
//随机生成验证码
String random=(int)((Math.random()*9+1)*100000)+"";
//控制台输出验证码
System.out.println("手机短信验证码--------------->"+random);
//验证码为生成的随机数,5分钟内到期
String[] datas={random,"5"};
HashMap<String,Object> result = sdk.sendTemplateSMS(to,templateId,datas);
if("000000".equals(result.get("statusCode"))){
//正常返回输出data包体信息(map)
HashMap<String,Object> data = (HashMap<String,Object>) result.get("data");
Set<String> keySet = data.keySet();
for(String key:keySet){
Object object = data.get(key);
System.out.println(key +" = "+object);
}
}else{
//异常返回输出错误码和错误信息
System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
}
}
}
项目的注册登入界面可将测试类封装成方法,短信时效性问题可在前端用JS设置定时器。
测试效果: