整合阿里云短信进行短信发送(1) | 学习笔记

简介: 快速学习 整合阿里云短信进行短信发送(1)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)整合阿里云短信进行短信发送(1)学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11444


整合阿里云短信进行短信发送(1)


内容介绍

一.在 service_msm 的 pom 中引入依赖

二.编写 controller,根据手机号发送短信

三.编写 service

 

阿里云发短信需要收费,收费标准是每条验证码0.045元,所以在测试的时候要提前充钱。

下面在项目中写代码,将阿里云的短信用代码的形式进行发送。


一.在 service_msm 的 pom 中引入依赖

<dependencies>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

</dependency>

<dependency>

<groupId>com.aliyun</groupId>

<artifactId>aliyun-java-sdk-core</artifactId>

</dependency>

</dependencies>

这个依赖中有两个依赖

一个是 fastjson,是 json 的转换工具

一个是 Java-sdk-core,是核心依赖

如果之前没有,需要联网下载。如果失败,直接在仓库中复制过去就可以了。


二.编写 controller,根据手机号发送短信

在 msmcontroller 中编写代码

@Autowired

private MsmService msmService;

//发送短信的方法

@GetMapping("send/{phone}“)

public R sendMsm(@PathVariable String phone){

//生成随机值,传递给阿里云进行发送

String code=RandomUtil.getFourBitRandom();

Map<String,Object>param=new HashMap<>()

param.put(“code“,code);//传 map 是为了后面方便,直接传 code 也是一样的

//调用 service 发送短信的方法

Boolean isSend=msmService.send(param,phone);//根据这条把验证码发送到手机号中

if(isSend) {

}else{

return R. error().message(”短信发送失败”)

}

要注意的是:

接收到的验证码要么是四位,要么是六位,要么是八位。随机生成的四位六位或者是八位的这个值并不是由阿里云生成的,而是由我们的程序生成的。我们的程序把随机生成的这个值传给阿里云,由它来发送。阿里云只是起到一个传递的作用。

在源码中写了一个工具类 RandomUtil.java,把它复制到新建的包utils中。

工具类中写了一个方法:

public static String getFourBitRandomo {

return fourdf. format( random nextInt( bound: 10000));

public static String getSixBitRandomo {

return sixdf. format( random nextInt( bound: 1000000));

直接运用工具类生成随机值即可。

生成的随机值传给阿里云的短信服务

主要做的就是通过工具类生成四位的验证码,得到手机号,把验证码手机号传到阿里云中。


三.编写 service

进入 msmService.java,service 的 interface。再进入 msmServiceImpl.java,在实现类中写下最终的发送短信的方法,这个方法中涉及到的参数是固定的。

@Service

public class MsmServiceImpl implements MsmService {

//发送短信的方法

@Override

public boolean send(Map<String, Object> param, String phone) {

return false;

之前写过类似的代码:

DefaultProfile profile =

DefaultProfile.getProfile("default",“LTAIq6nIPY09VROj","FQ7UcixT9wEqMv9F35nORPqKr8XkTF");IAcsClientclient=newDefaultAcsClient(profile);

………

DefaultProfile profile 是默认的配置文件中的内容;

“LTAIq6nIPY09VROj","FQ7UcixT9wEqMv9F35nORPqKr8XkTF"是之前的 id 和秘钥;

default 是地域节点,默认是这样的,或者改成 cn 上海北京都可以;

对 IAcsClient client 这个对象进行new的操作;

下面的一些代码就是传参数,最终进行发送。

将以上固定的代码复制到 service 中:

@Service

public class MsmServiceImpl implements MsmService {

//发送短信的方法

@Override

public boolean send(Map<String, Object> param, String phone) {

if(StringUtlls.isEmpty(Phone)) return false;

//首先判断手机号是否为空,如果为空就没必要发送,直接return false,如果不等于空,再进行以下步骤。

DefaultProfile profile =DefaultProfile.getProfile(regionId:"default"accesskeyId:" LTAI4FvvVEWiTJ3GNJJqJnk7"secret:"9st82dv7EvFk9mTjY01XXbM632fRbG");

IAcsCllent client=new DefaultAcsClient(profile);

//设置相关固定的参数

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(name:”PhoneNumbers”,phone);//手机号

request.putQueryParameter(name:”SignName”,value:“我的谷粒在线教育网站”);//申请阿里云 签名名称

request.putQueryParameter(name:”Templatecode”,value:“SMS_180051135”);//申请阿里云 模板 code

request.putQueryParameter(name:”TemplateParam”,JSONObject.toJSONString(param))//验证码数据,转换 json 数据传递

try {

//最终发送

CommonResponse response=client.get CommonResponse (request);

boolean success = response.getHttpResponse().isSuccess();

return success;

}catch(Exception e) {

}

return false;

注:

参数也是固定的,不能更改,直接复制即可。

刚才传 map 的好处是可以把 map 直接变成 json 格式。用 fastJson 中的转换工具可以做到。

相关文章
|
4月前
sms4j对接阿里云短信
sms4j对接阿里云短信
421 0
|
测试技术 API
阿里和云之讯短信发送服务
阿里和云之讯短信发送服务
230 0
|
2月前
|
开发框架 前端开发 JavaScript
ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成
ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成
ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成
阿里云短信服务价格_企业短信营销推广_验证码通知-阿里云
阿里云短信服务价格_企业短信营销推广_验证码通知-阿里云,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
168 0
|
消息中间件 安全 Java
阿里云 短信服务——发送短信验证码图文教程
阿里云 短信服务——发送短信验证码图文教程
3840 2
|
监控 数据安全/隐私保护
阿里云 短信服务——短信发送频率限制
阿里云 短信服务——短信发送频率限制
1585 0
阿里云短信api接口价格
阿里云短信api接口价格,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
【阿里云短信】开通使用
【阿里云短信】开通使用
182 0
【阿里云短信】开通使用
|
监控 Java BI
短信服务介绍|学习笔记
快速学习短信服务介绍
193 0
短信服务介绍|学习笔记
|
JSON Java 关系型数据库
阿里云短信服务介绍 | 学习笔记
快速学习阿里云短信服务介绍
354 0
阿里云短信服务介绍 | 学习笔记