发送短信验证码---阿里大于

使用阿里大于发送短信

1.进入阿里云控制台,搜索 ‘短信服务’

发送短信验证码---阿里大于_第1张图片

2.点击’快速学习’,界面如下

需要签名和模板,这也是调用发送短信的关键
发送短信验证码---阿里大于_第2张图片

3.点击国内消息和添加签名

发送短信验证码---阿里大于_第3张图片
发送短信验证码---阿里大于_第4张图片
完成操作后:
发送短信验证码---阿里大于_第5张图片
主要需要两个参数:ID和Secret
发送短信验证码---阿里大于_第6张图片
由于我已经申请了一个验证码了,现在看到的是申请通用的界面,就不做介绍了…
有疑问可以参考https://www.cnblogs.com/amunamuna/p/9686661.html

4.阿里大于发送短信工具类


        <dependency>
            <groupId>com.aliyungroupId>
            <artifactId>aliyun-java-sdk-coreartifactId>
            <version>4.4.6version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-apiartifactId>
                    <groupId>org.slf4jgroupId>
                exclusion>
            exclusions>
        dependency>
        <dependency>
            <groupId>com.aliyungroupId>
            <artifactId>aliyun-java-sdk-ecsartifactId>
            <version>4.17.6version>
        dependency>
package com.athome.ali;

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;

/**
 * @author liang
 * @version 1.0
 * @date 2020/3/30 20:28
 */
public class AliDaYuUtil {
    /**
     * 根据用户手机号发送短信验证码
     * @param phoneNumbers : 短信收件人
     * @param length : 验证码长度
     * @return : 短信验证码code
     */
    public static String sendTelValidateCode(String phoneNumbers ,int length ){
        /**
         * 调用短信API请求
         *
         * access key
         * regionId:短信服务区域.
         * accessKeyId:阿里云短信服务access keyId.
         * secret:access key密钥.
         */
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
                "LTAI4Fpfk3f2bfeMdMnpeToN", "ICAlFtny2ABNpVgGeWd49O8ftdHwBV");
        IAcsClient client = new DefaultAcsClient(profile);
        /**
         * 传入参数,调用SDK
         */
        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        /**
         * 短信通知用户
         */
        request.putQueryParameter("PhoneNumbers", phoneNumbers);
        /**
         * 短信签名
         */
        request.putQueryParameter("SignName", "巅峰");//巅峰
        /**
         * 短信通知模板
         */
        request.putQueryParameter("TemplateCode", "SMS_186951578");//SMS_186951578:验证码; SMS_186946660:短信验证
        /**
         * 模板变量名
         * 用户姓名name,时段time,数值code
         */
        String code =StringUtil.getDigitalRandom(length);
        int i = Integer.parseInt(code);
        request.putQueryParameter("TemplateParam", "{\"code\":\""+i+"\"}");
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            if (!response.getData().contains("OK")){
                return null ;
            }
        }
        catch (ServerException e) {
            e.printStackTrace();
            return null ;
        }
        catch (ClientException e) {
            e.printStackTrace();
            return null ;
        }
        return  code ;
    }

    /**
     * 发送短信通知,修改密码成功等。。。
     * @param tel : 手机号
     * @return
     */
    public static String sendTelMessage(String tel ){
        return null ;
    }

    public static void main(String[] args) {
        String s = sendTelValidateCode("15984251717", 6);
        System.out.println(s);
    }
}

你可能感兴趣的:(阿里大于验证码,阿里云,java)