使用阿里云短信验证码
- 准备
- 1.注册账号
- 2.免费试用
- 一些设置
- 1.测试一下
- 2.添加自己的签名和模板
- 3.添加用户&用户组
- 代码
- 1.使用示例
- 2.导jar包
- 2.写代码
- 最后
准备
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;}
最后
第一次写,超认真的,其实是很简单的一个事,但是第一次弄真的一头雾水,现在整理好,给像前几天的我一样的小白→_→