123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.ruoyi.common.utils;
- import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
- import com.aliyun.teautil.models.RuntimeOptions;
- /**
- * @author tjf
- * @Date: 2021/07/15/10:21
- */
- public class SendSmsUtils {
- //短信参数
- static final String ACCESS_KEY_ID = "LTAI5tNA2fcBJH6EWRH6Pxr6";
- static final String ACCESS_KEY_SECRET = "5WdaPEOvC3u9LC7pwy2DQ9pgmJvgUr";
- //生成X位验证码
- public static String getCode(Integer num) {
- String[] codes = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
- StringBuilder code = new StringBuilder();
- for (int i = 0; i < num; i++) {
- int j = (int) (Math.random() * 10);
- if (j <= 0) {
- j = 1;
- }
- code.append(codes[j - 1]);
- }
- return code.toString();
- }
- public static void main(String[] args) {
- String code = getCode(4);
- System.out.println(code);
- }
- /**
- * 使用AK&SK初始化账号Client
- *
- * @return Client
- * @throws Exception
- */
- public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
- com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
- // 必填,您的 AccessKey ID
- .setAccessKeyId(ACCESS_KEY_ID)
- // 必填,您的 AccessKey Secret
- .setAccessKeySecret(ACCESS_KEY_SECRET);
- // 访问的域名
- config.endpoint = "dysmsapi.aliyuncs.com";
- return new com.aliyun.dysmsapi20170525.Client(config);
- }
- /**
- * 发送短信消息
- *
- * @return
- */
- public static String sendSms(String phone, String templateCode, String smsCode) {
- String code = "";
- try {
- // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
- com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
- com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
- //手机号码
- .setPhoneNumbers(phone)
- //短信签名名称。中新云
- .setSignName("中新云")
- //短信模板变量对应的实际值{"name": code}
- .setTemplateParam(smsCode)
- //短信模板CODE
- .setTemplateCode(templateCode);
- // 复制代码运行请自行打印 API 的返回值
- SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
- code = sendSmsResponse.getBody().code;
- } catch (Exception _error) {
- }
- return code;
- }
- /**
- * 发送注册的随机密码
- *
- * @return
- */
- public static String sendPassword(String password, String phone, String templateCode) {
- String code = "";
- try {
- // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
- com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
- String smsCode = "{\"password\":\"" + password + "\"}";
- com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
- //手机号码
- .setPhoneNumbers(phone)
- //短信签名名称。潜山市数据资源局
- .setSignName("中新云")
- //短信模板CODE
- .setTemplateCode(templateCode)
- //短信模板变量对应的实际值{"name": code}
- .setTemplateParam(smsCode);
- // 复制代码运行请自行打印 API 的返回值
- SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
- code = sendSmsResponse.getBody().code;
- } catch (Exception _error) {
- }
- return code;
- }
- }
|