欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里云短信验证(代码)demo完整教程

程序员文章站 2023-12-22 15:46:04
...

前言:

使用阿里云短信服务的前提你得有阿里云账号(我简直在说废话)没有得话就去注册一个 注册后登陆

教程开始:

阿里云上面有官方得文档以及Demo&SDK,为什么我还要写这篇播客呢,因为上面的文档说的太过于官方,可能第一步你都不知道该怎么做 所以我就写呢这篇播客

 

 

 

阿里云短信验证(代码)demo完整教程

 登陆进去右边点击产品与服务 按照上图操作可以开通短信服务 当然开通这个短信服务是免费的,但是发短信就要收费了

 开通后就要进行充值了

充值

好吧,我进去的时候弄到一张免费的十块钱短信券,可以免费试用,我开始不知道它是直接扣费的,我就冲了2块钱进去,最后没想到10块钱券可以直接发短信,所以有没有看你了,自己冲一点玩玩吧。反正也不是很贵少喝两瓶饮料的钱,玩一下

阿里云短信验证(代码)demo完整教程

你充值过后可以发短信了?当然不是

你要申请 签名和模板

先说签名的申请

阿里云短信验证(代码)demo完整教程

 下面申请模板

阿里云短信验证(代码)demo完整教程

 申请通过后可以点击详情看到类似下面的内容

 

阿里云短信验证(代码)demo完整教程

 后面代码会用到!

然后 创建access key  (很重要) 看下面图片

 

阿里云短信验证(代码)demo完整教程

点击红色框中 获取 Access key

 阿里云短信验证(代码)demo完整教程

 

请点击此处输入图片描述

按照要求创建完以后,我们准备工作就全部搞定了,然后就是实际运行测试了

下面就开始撸代码了

当然你可以看官方的文档教程

阿里云短信验证(代码)demo完整教程

点进去就可以看到了

下面开始我的教程 

1、创建一个maven工程 创建一个类

阿里云短信验证(代码)demo完整教程

编写样例程序  官方代码 

在这之前需要导入maven依赖当然我也给你准备了 你只管复制粘贴就行

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.0.8</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
        <version>1.1.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.4</version>
    </dependency>
</dependencies>

复制下来复制到你创建的类中

​
//设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//替换成你的AK
final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤2
//初始化ascClient,暂时不支持多region(请勿修改)
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
 //组装请求对象
 SendSmsRequest request = new SendSmsRequest();
 //使用post提交
 request.setMethod(MethodType.POST);
 //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
 request.setPhoneNumbers("1500000000");
 //必填:短信签名-可在短信控制台中找到
 request.setSignName("云通信");
 //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
 request.setTemplateCode("SMS_1000000");
 //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
 //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
 request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
 //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
 //request.setSmsUpExtendCode("90997");
 //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
 request.setOutId("yourOutId");
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//请求成功
}

​

下面我截图我的代码以及说明需要修改的地方

阿里云短信验证(代码)demo完整教程

如果你图片看不懂那么我附上我的代码 我的代码可以随机生成6位随机数

public class dd {
    public static void main(String[] args) throws ClientException {
        //随机生成六位随机数
        StringBuffer stringBuffer=new StringBuffer();
        for (int x=0;x<=5;x++) {
            int random = (int) (Math.random() * (10 - 1));
            stringBuffer.append(random);
        }
        String string = stringBuffer.toString();
        int i = Integer.parseInt(string);
//        System.out.println(i);
        //设置超时时间-可自行调整
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
        final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
        final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//替换成你的AK
        final String accessKeyId = "LTAIhbdKGluLaFhY";//你的accessKeyId,参考本文档步骤2
        final String accessKeySecret = "gt7DdJEk6j8Xh4p5VlfbTuU7XUt6jCc3";//你的accessKeySecret,参考本文档步骤2
//初始化ascClient,暂时不支持多region(请勿修改)
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
                accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        //组装请求对象
        SendSmsRequest request = new SendSmsRequest();
        //使用post提交
        request.setMethod(MethodType.POST);
        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
        request.setPhoneNumbers("176dxxxxxx");
        //必填:短信签名-可在短信控制台中找到
        request.setSignName("短信测试");
        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
        request.setTemplateCode("SMS_1283852506");
        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
        request.setTemplateParam("{\"customer\":\""+i+"\"}");
        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
        //request.setSmsUpExtendCode("90997");
        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");
//请求失败这里会抛ClientException异常
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//
            System.out.println("OK");
        }
    }
}

当然图片上打马赛克的地方我代码里面都是错的 改成你自己的

有什么不懂可以call我aaa@qq.com qq邮箱都知道了qq号还能不知道

到此结束

 

上一篇:

下一篇: