引入依赖
maven
<!--阿里云短信服务--><dependency><groupId>com.aliyun</groupId><artifactId>tea-openapi</artifactId><version>0.0.13</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.1</version></dependency>
gradle
// 短信服务compile 'com.aliyun:tea-openapi:0.0.13'compile 'com.aliyun:dysmsapi20170525:2.0.1'
阿里云短信文档地址
参数
在配置表中,配置以下参数:
| 名称 | 配置名 | 配置值 |
|---|---|---|
| accessKeyId | accessKeyId | LTAI5tG6KbHDK7nVt2X6ifBF |
| accessKeySecret | accessKeySecret | wwCjeH5X8Shr9dCGdC8QxooIuM7Etl |
工具类 AliSmsUtil
// This file is auto-generated, don't edit it. Thanks.package com.hn.common.utils;import cn.hutool.json.JSONUtil;import com.aliyun.dysmsapi20170525.models.SendSmsRequest;import com.aliyun.dysmsapi20170525.models.SendSmsResponse;import com.aliyun.teaopenapi.models.Config;import com.hn.common.exception.BusinessException;import lombok.extern.slf4j.Slf4j;import java.util.HashMap;import java.util.Map;@Slf4jpublic class AliSmsUtil {/*** 您在xxx提交的商户资料,已认证通过,请登录app继续操作。祝颂商祺!* 用户成为我们商家推送短信*/public static final String TEMPLATE_AUTH_SUCCESS = "SMS_123456";/*** 您的注册验证码为:${code},请妥善保管,请勿告诉他人。* 用于xxx短信注册使用*/public static final String TEMPLATE_REGISTER = "SMS_1234";/*** 您的登录验证码为:${code},请妥善保管,勿告诉他人。*/public static final String TEMPLATE_LOGIN = "SMS_12345";/*** 您的绑定手机号验证码为:${code},请妥善保管,请勿告诉他人。*/public static final String TEMPLATE_BIND = "SMS_11111";/*** 短信签名*/private static final String SIGN_NAME = "xxxx";/*** accessKeyId*/private static final String ACCESS_KEY_ID = "accessKeyId";/*** accessKeySecret*/private static final String ACCESS_KEY_SECRET = "accessKeySecret";/*** 使用AK&SK初始化账号Client* @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public static com.aliyun.dysmsapi20170525.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 com.aliyun.dysmsapi20170525.Client(config);}public static void login(String phone,String code){send(phone,code,TEMPLATE_LOGIN);}/*** 注册* @param phone* @param code*/public static void register(String phone,String code){send(phone,code,TEMPLATE_REGISTER);}/*** 绑定* @param phone* @param code*/public static void bind(String phone,String code){send(phone,code,TEMPLATE_BIND);}public static void send(String phone,String code,String templateCode) {com.aliyun.dysmsapi20170525.Client client = null;try {client = AliSmsUtil.createClient(ACCESS_KEY_ID,ACCESS_KEY_SECRET);} catch (Exception e) {log.error(e.getMessage());throw new BusinessException("短信发送失败");}Map map = new HashMap<>();map.put("code",code);SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(phone).setSignName(SIGN_NAME).setTemplateCode(templateCode).setTemplateParam(JSONUtil.toJsonStr(map));// 复制代码运行请自行打印 API 的返回值SendSmsResponse sendSmsResponse = null;try {sendSmsResponse = client.sendSms(sendSmsRequest);} catch (Exception e) {log.error(e.getMessage());throw new BusinessException("发送短信失败");}System.out.println(JSONUtil.toJsonStr(sendSmsResponse));}}
使用
public static void main(String[] args_) throws Exception {AliSmsUtil.register("18715081234","123456");}
申请 AccessKey 和 AccessKeySecret
- 打开控制台 , https://dysms.console.aliyun.com/
- 鼠标放在右上角头像上 点击 AccessKey 管理

- 他会提示您不能使用您的主 Key 要您使用子用户 Key

- 点击开始使用子用户 AccessKey
- 进入之后 选择创建用户 一定要勾选 编程访问 否则无法使用 Java 进行调用!!!

- 创建用户完成之后 , 复制 AccessKey ID 和 AccessKey Secret

- 权限可在用户选项卡中查看 => 继承用户组的权限 也可也单独给该用户添加权限

- 添加权限,选择 AliyunDysmsFullAccess


- 这样就可以了
- 现在已经可以使用该 Key 和 Secert 进行调用阿里云 API 了
注意事项
即使 AccessKey Secret 丢了也不要紧 再次创建一个就可以了!
如果 AccessKey 丢失了 或者泄露 请马上删除 丢失 Key 的用户 以免造成财产丢失或被盗!
尽量不要使用主 AccessKey
参考
https://blog.csdn.net/weixin_43420255/article/details/105914979

