阿里云短信
-
AccessKey管理
登录阿里云 在个人用户 里面 AccessKey管理点开
选择开始使用子用户AccessKey
在里面添加用户组和用户
用户组里面有权限 用户会继承权限
用户组:
-
权限管理:
设置短信权限 添加权限
直接搜索SMS 就有管理短信的权限
管理短信服务(SMS)的权限
用户:
- 开启编程访问
- 会告诉你AccessKey和密码 必须自己保存
把用户加入到用户组里面 就会继承用户组里面的权限 也就是短信权限
-
-
在服务里面搜索 短信 进入短信服务
-
在国内消息里面添加 签名 和 模板
-
进入项目 导入依赖
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.0.3</version> </dependency> <!-- 处理json相关的--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> version>1.2.62</version> </dependency>
-
测试代码
package com.cmr; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.HashMap; @SpringBootTest class DemoApplicationTests { @Test void contextLoads() { //第一个不用管 第二个为AccessKey账号 第三个是密码 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); //构建请求 CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); //作用域不要动 request.setDomain("dysmsapi.aliyuncs.com"); //版本号 request.setVersion("2017-05-25"); request.setAction("SendSms"); //自顶替参数 手机号 验证码 签名 模板 //手机号 request.putQueryParameter("PhoneNumbers", "手机号"); //签名 request.putQueryParameter("SignName", "签名"); //模板的CODE request.putQueryParameter("TemplateCode", "模板的CODE"); //构建短信验证码 HashMap<String, Object> map = new HashMap<>(); map.put("code",1234); request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map)); try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } } } catch (ClientException e) { e.printStackTrace(); } } }