阿里云实现发送短信(Java实例教程)
Posted 江東-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云实现发送短信(Java实例教程)相关的知识,希望对你有一定的参考价值。
目录
🍋发送验证码
短信发送是电信运营商提供的服务,需要访问对应的接口,不同运营商提供的接口地址肯定不一样,如果直接访问这些接口就需要判断收信息的手机号属于哪个运营商,关键在于这些接口不对个人开放,还要考虑调用短信服务的费用问题
因此目前调用短信业务都是使用第三方企业的短信服务,他们与运营商合作,封装了短信接口,调用方法,而且费用相对便宜
第三方的短信服务有很多,其中阿里云也提供了短信服务
🧣短信服务(推荐)
🐳注册购买
第一步:阿里云首页搜索短信服务
地址:添加链接描述
第二步:选择购买的短信服务
第三步:点击购买,有5条免费使用,测试也会消耗使用次数,用完了在付费购买即可
第四步:找到自己购买的云服务
- 可以看到已购买的服务剩余数量
🏓代码测试
第一步:参考API,在【API接口】中已经给出了Java代码怎么调用该服务的接口
第二步:参考API,编写发送短信工具类
import com.aliyun.tea.TeaModel;
/***
* @Title:
* @ClassName: com.hssmart.common.utils.AliyunSms.java
* @Description:
*
* @Copyright suihao- Powered By 研发中心
* @author: suihao
* @date: 2022-11-01 15:51
* @version V1.0
*/
public class AliyunSms
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = "dysmsapi.aliyuncs.com";
return new com.aliyun.dysmsapi20170525.Client(config);
accessKeyId 以及accessKeySecret查找的方式“:
第一步点击头像打开accessKey管理
第二部进行查看所需要的accessKeyId 以及accessKeySecret
🖐Java组件封装
🥝发送实例
package com.suihao.autoconfig.properties;
public static void main(String[] args)
com.aliyun.dysmsapi20170525.Client client = AliyunSms.createClient("accessKeyId", "accessKeySecret");
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setSignName("签名名称")
.setTemplateCode("模板号码")
.setPhoneNumbers("测试手机号")
.setTemplateParam("\\"code\\":\\"6666\\"");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
com.aliyun.dysmsapi20170525.models.SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(resp)));
1.SignName代表的签名名称
2.TemplateCode代表的模板code
🥝pom依赖
<!--阿里云-->
<developers>
<developer>
<id>aliyundeveloper</id>
<name>Aliyun SDK</name>
<email>aliyunsdk@aliyun.com</email>
</developer>
</developers>
<distributionManagement>
<snapshotRepository>
<id>sonatype-nexus-snapshots</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>sonatype-nexus-staging</id>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<scm>
<connection></connection>
<developerConnection></developerConnection>
<url></url>
</scm>
<dependencies>
<!--阿里云-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.22</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.2.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-console</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-util</artifactId>
<version>0.2.14</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea</artifactId>
<version>1.1.14</version>
</dependency>
<!---->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.3</version>
<extensions>true</extensions>
<configuration>
<serverId>sonatype-nexus-staging</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</build>
🌈Spring.factories(略)
🍎麻烦给博主点个关注+收藏+点赞!
java实现阿里云发送短信验证码
第一步:首先得注册阿里云账号(没有阿里云账号的自己去注册一个)
第二步:开通服务
1. 搜索短信服务
2.添加签名和模板(需要提交审核,审核通过后才可以使用,一般几分钟就可以出审核结果了)
第三步:编写测试代码
1.打开帮助文档,找到SDK参考
需要用什么语言写就点击安装什么的SDK,就行了
我选择环境是推荐的是添加maven依赖
java代码(复制调试代码进行修改就可以实现了)
package com.liusha.sendsms; import com.alibaba.fastjson.JSONObject; 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 org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.HashMap; @SpringBootTest class SendsmsApplicationTests { @Test void contextLoads() { DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "填写你的AccessKey ID", "填写你的AccessKey Secret"); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.setSysMethod(MethodType.POST); request.setSysDomain("dysmsapi.aliyuncs.com"); //不要改 request.setSysVersion("2017-05-25"); //不要改 request.setSysAction("SendSms"); //我选择sendSms //自定义的参数(手机号,验证码,签名,模板) request.putQueryParameter("PhoneNumbers", "发送到的手机号码"); request.putQueryParameter("SignName", "你的签名名称"); request.putQueryParameter("TemplateCode", "你的模版CODE"); //构建一个短信验证码(一般都是传进来的随机数,我这里测试直接写死) HashMap<String, Object> map = new HashMap<>(); map.put("code",5588); request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map)); try { CommonResponse response = client.getCommonResponse(request); //输出响应是否成功 System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }
运行结果
以上是关于阿里云实现发送短信(Java实例教程)的主要内容,如果未能解决你的问题,请参考以下文章