Maven短信项目
一共有三步骤
- 导入Maven包
- 创建 短信类,生成验证码类,发送短信类
- 输入你阿里云中的参数
1-导入Maven包
<dependencies>
<!--简化实体类中的get set-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--短信验证的核心配置文件-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.9</version>
</dependency>
<!--安装 SDK 核心库 OpenAPI ,可以通过 POM 文件引入的方式来安装-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.2.2</version>
</dependency>
</dependencies>
2-创建 短信类,生成验证码类,发送短信类
-
短信类 Note 这个短信类是根据你自己创建的短信模板缩写的,根据你需要的参数来创建的类
/** * 短信类 * name 用户名 * Code 短信验证码 */ public class Note { private String name;//用户名 private int Code;//短信验证码 }
-
生成验证码的类 RandomCode
public class RandomCode { /** * 0 1 2 3 4 5 6 7 8 9 * 生辰验证码 * @return */ public static int genCode(){ int code = (int)((Math.random()*9+1)*100000);//生成6位随机数 return code; } public static void main(String[] args) { System.out.println(RandomCode.genCode()); }
-
发短信的类Fasong
public class Fasong { private static Client client;//初始化账号 //类加载触发 static { try { // 这个keyid 和密码是新创建的 授权了短信服务的了 client = createClient("keyid AAAAAAAAAAAAAA", "Value AAAAAAAAAAAAAA"); }catch (Exception e){ e.printStackTrace(); } } /** * 使用AK&SK初始化账号Client * @param accessKeyId * @param accessKeySecret * @return Client * @throws Exception */ public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception { Config config = new Config() // 您的AccessKey ID .setAccessKeyId(accessKeyId) // 您的AccessKey Secret .setAccessKeySecret(accessKeySecret); // 访问的域名 config.endpoint = "dysmsapi.aliyuncs.com"; return new Client(config); } //传入参数发送短信 public static void Send(String phone, Note note){ System.out.println("手机号:"+phone+" |——| 验证码:"+note.getCode()+" |——| 名字:"+note.getName()); // java.util.List<String> args = java.util.Arrays.asList(args_); try { SendSmsRequest sendSmsRequest = new SendSmsRequest() .setPhoneNumbers(phone)//手机号 .setSignName("短信签名")//短信签名 .setTemplateCode("短信模板--内容")//短信模板--内容 .setTemplateParam(JSON.toJSONString(note));//参数 这个是转成json格式传进去了 // 复制代码运行请自行打印 API 的返回值 // 这个是直接发送短信了 SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest); System.out.println(sendSmsResponse.getHeaders()); System.out.println(sendSmsResponse.getBody()); }catch (Exception e){ e.printStackTrace(); } finally { } } public static void main(String[] args_) throws Exception { Note note = new Note("名称", RandomCode.genCode()); System.out.println(note); //实体类中 名字name 验证码Code Fasong.Send("手机号",note); } }
3-执行main就可以测试成功了,
也可以取消这个是直接发送短信了 然后看测试输出结果,省短信的数量了
SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);