阿里云短信服务的使用

1.先去开通阿里云的短信服务

先去阿里云官网搜索短信服务,如下图所示
在这里插入图片描述
在这里插入图片描述

2.进入到短信服务的管理控制台

2.1 添加签名

在这里插入图片描述

2.2 添加模板

在这里插入图片描述

3.开始写代码(我这里写的是java)

3.1 先引入依赖

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.1</version>
</dependency>

3.2 SendSms类(短信发送类)

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 java.util.Random;

import java.security.SecureRandom;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class SendSms {

    private static final String SYMBOLS = "0123456789"; // 数字

    private static final Random RANDOM = new SecureRandom();

    //该函数是用来生成随机的验证码的函数
    public static String getNonce_str() {

        // 如果需要4位,那 new char[4] 即可,其他位数同理可得
        char[] nonceChars = new char[6];

        for (int index = 0; index < nonceChars.length; ++index) {
            nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
        }

        return new String(nonceChars);
    }


    /*
     * @param tel  发送的手机号码
     * @param code 验证码
     */
    public static void sendMessage(String tel,String code) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKeyId", "你的 AccessKeySecret");
        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");
        //这里的ID以杭州为例
        request.putQueryParameter("RegionId", "cn-hangzhou");
        //tel为发送的手机号
        request.putQueryParameter("PhoneNumbers", tel);
        //这里的SignName是你刚刚申请的签名名称
        request.putQueryParameter("SignName", "签名名称");
        //TemplateCode是你申请的模板的模板代码,即模版CODE
        request.putQueryParameter("TemplateCode", "模版CODE");
        /**
         * 这里是指你模板里面的参数
         * 我的模板是:您的验证码:${code},您正进行身份验证,打死不告诉别人!
         * 所以的参数只有一个code,这里的验证码的参数是由你自己生成发送的,而不是阿里云发送完再返回给你的
         **/
        request.putQueryParameter("TemplateParam", "{\"code\":\""+code+"\"}");
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }


    /**
     * @param phone  手机号码
     * 确认手机号码有没有正确的符合格式
     */
    public static void checkPhoneNumbers(String phone){
        //手机号码的正则表达式
        String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";
        if(phone.length() != 11){
            //这里的代码可以自行修改写
            System.out.println("手机号应为11位数");

        }else{
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(phone);
            boolean isMatch = m.matches();

            if(! isMatch){
                //这里的代码可以自行修改写
                System.out.println("您的手机号" + phone + "是错误格式!!!");
            }
        }
    }
}

4. 基本上用我上面的代码就可以直接发送短信了,如果不想用,想自己搭配,也可以直接登录到阿里云的,OpenAPI Explorer来自己调试

4.1 OpenAPI Explorer网址:https://api.aliyun.com/?spm=a2c4g.11186623.2.17.195e60e2IgYxpF#/?product=Dysmsapi&lang=JAVA

这个 OpenAPI Explorer的页面如下:
在这里插入图片描述

你只要在左侧选择函数,然后在中间的框里填入参数,右边上方选择语言,那么右边下方里的代码就会根据你选择的函数、参数以及语言生成你需要的类。
具体函数的作用和参数可以自己去看阿里云的API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值