准备
1.注册账号
2.免费试用
连接: [link]https://free.aliyun.com/ntms/free/personal.html?handle=true.
之后会有一张问卷,(忘记截了→_→)支付0元,好像是三个月100条,开发阶段够用了
一些设置
1.测试一下
2.添加自己的签名和模板
审核
模板也一样要审核
之后在列表里可以看到状态
3.添加用户&用户组
链接: [link]https://ram.console.aliyun.com/overview.
添加用户,给用户创建ak
代码
1.使用示例
测试一下
这里要注意
2.导jar包
我的是SSH项目,所以要导两个包
aliyun-java-sdk-core-x.x.x.jar
复制打开:sdk-release2.oss-cn-hangzhou.aliyuncs.com/tarfiles/aliyun-java-sdk-core-4.1.0.jar?spm=a2c4g.11186623.2.16.ec1660e2MxZlap&file=aliyun-java-sdk-core-4.1.0.jar
gson-x.x.x.jar(这个我一开始没导就报错了)一定要buildpath,不然也会报错
[链接]http://repo1.maven.org/maven2/com/google/code/gson/gson/
2.写代码
生成验证码的类
public static int createRN() {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < 5; i++) {
int random = (int) (Math.random() * (10 - 1));
stringBuffer.append(random);
}
String string = stringBuffer.toString();
int number = Integer.parseInt(string);
System.out.println(number);
if (number < 10000) {
return createRN();
} else {
return number;
}
}
调用阿里SendSms
public class SendMessage {
public static int sendMsg(String shoujihao) {
//这两个是上一部分第三步的,要改成你自己的
final String accessKeyId = "XXXXXXXXXXXXXXXX";
final String accessSecret = "XXXXXXXXXXXXXXXXXXXX";
DefaultProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessSecret);
IAcsClient client = new DefaultAcsClient(profile);
int yzm = createRN();
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("RegionId", "default");
request.putQueryParameter("PhoneNumbers", “接收验证码的手机号”);
request.putQueryParameter("SignName", "你的签名");
request.putQueryParameter("TemplateCode", "你的模板code");
//这里要注意写成"{\"code\":\"123456\"}"这种,我一开始直接写的,会报JSON参数不合法
request.putQueryParameter("TemplateParam", "{\"code\":\""+yzm+"\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return yzm;
}
最后
第一次写,超认真的,其实是很简单的一个事,但是第一次弄真的一头雾水,现在整理好,给像前几天的我一样的小白→_→