如果你是小白, 那么看我这个绝对没问题, 手把手教学......
首先你打开这个链接: https://help.aliyun.com/document_detail/59210.html?spm=a2c4g.11186623.6.550.3fb415ec0B2n0o
打代码之前, 你要做的准备工作就是: 下面 4 步.
入驻阿里云 --- 开通短信服务 ---- 获取 AccessKey-------- 创建签名和模版
当你完成了上面 4 步, emmm.....
打开 eclipse
新建 maven 工程 (quickstart)
在你的 pom.xml 中复制我下面的东西
- <dependencies>
- <!-- 短信 sdk -->
- <dependency>
- <groupId>
- com.aliyun
- </groupId>
- <artifactId>
- aliyun-java-sdk-core
- </artifactId>
- <version>
- 3.7.1
- </version>
- </dependency>
- <dependency>
- <groupId>
- com.aliyun
- </groupId>
- <artifactId>
- aliyun-java-sdk-dysmsapi
- </artifactId>
- <version>
- 1.1.0
- </version>
- </dependency>
- </dependencies>
然后新建一个包, 并在包下建一个类. 在类里面复制我下面这段代码
- package com.lanyou.cent.controller;
- import com.aliyuncs.DefaultAcsClient;
- import com.aliyuncs.IAcsClient;
- import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
- import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
- import com.aliyuncs.exceptions.ClientException;
- import com.aliyuncs.profile.DefaultProfile;
- import com.aliyuncs.profile.IClientProfile;
- /**
- * @Auther: ZouLF
- * @Date: 2018/5/29 10:49
- * @Description: 短信验证码测试
- */
- public class SmsUtils {
- // 产品名称: 云通信短信 API 产品, 开发者无需替换
- static final String product = "Dysmsapi";
- // 产品域名, 开发者无需替换
- static final String domain = "dysmsapi.aliyuncs.com";
- // TODO 此处需要替换成开发者自己的 AK(在阿里云访问控制台寻找)
- static final String accessKeyId = "***********"; // TODO 改这里 1
- static final String accessKeySecret = "**************"; // TODO 改这里 2
- public static SendSmsResponse sendSms(String telephone, String code) throws ClientException {
- // 可自助调整超时时间
- System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
- System.setProperty("sun.net.client.defaultReadTimeout", "10000");
- // 初始化 acsClient, 暂不支持 region 化
- IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
- DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
- IAcsClient acsClient = new DefaultAcsClient(profile);
- // 组装请求对象 - 具体描述见控制台 - 文档部分内容
- SendSmsRequest request = new SendSmsRequest();
- // 必填: 待发送手机号
- request.setPhoneNumbers("*********");3
- // 必填: 短信签名 - 可在短信控制台中找到
- request.setSignName("********"); // TODO 改这里 4
- // 必填: 短信模板 - 可在短信控制台中找到
- request.setTemplateCode("******"); // TODO 改这里 5
- // 可选: 模板中的变量替换 JSON 串, 如模板内容为 "亲爱的用户, 您的验证码为 ${code}" 时, 此处的值为
- request.setTemplateParam("{\"code\":\"" + code + "\"}");
- // 选填 - 上行短信扩展码 (无特殊需求用户请忽略此字段)
- // request.setSmsUpExtendCode("90997");
- // 可选: outId 为提供给业务方扩展字段, 最终在短信回执消息中将此值带回给调用者
- request.setOutId("yourOutId");
- // hint 此处可能会抛出异常, 注意 catch
- SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
- System.out.println(sendSmsResponse.getCode());
- System.out.println(sendSmsResponse.getCode().equals("ok"));
- if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){
- System.out.println("短信发送成功!");
- }else {
- System.out.println("短信发送失败!");
- }
- return sendSmsResponse;
- }
- // 以下为测试代码, 随机生成验证码
- private static int newcode;
- public static int getNewcode() {
- return newcode;
- }
- public static void setNewcode(){
- newcode = (int)(Math.random()*9999)+100; // 每次调用生成一次四位数的随机数
- }
- public static void main(String[] args) throws Exception {
- setNewcode();
- String code = Integer.toString(getNewcode());
- SendSmsResponse sendSms =sendSms("你手机号",code);// 填写你需要测试的手机号码 6
- System.out.println("短信接口返回的数据 ----------------");
- System.out.println("Code=" + sendSms.getCode());
- System.out.println("Message=" + sendSms.getMessage());
- System.out.println("RequestId=" + sendSms.getRequestId());
- System.out.println("BizId=" + sendSms.getBizId());
- }
- }
你要改的是上面注释后面我标有 123456 的地方.
需要注意的是第 5 点的填写是一串代码, 找到你的模板管理 - 点击详情 - 把模板 CODE: 后面那一串复制到 5 那里.
ok, 点击 java application 运行. 即可以看到你手机的验证码!
来源: http://www.bubuko.com/infodetail-2890805.html