阿里云短信服务接入和购买流程

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 很多用户不知道怎么接入短信,那么接下来就有小编跟大家讲解一下吧

一,准备工作

1.首先点击注册阿里云账号

图片.png


然后接下来讲解一下怎么接入短信吧

2.购买阿里云短信

点击:阿里云短信

一般测试开发用,选择:5000条即可

图片.png

二、接入阿里云短信

图片.png

1. 登录阿里云,点击头像看到获取AccessKey

图片.png

2. 使用子账号可以自己设置:

图片.png

图片.png

3. 创建用户组

图片.png

4. 配置用户组权限(sms)

图片.png

图片.png

5. 创建用户


图片.png

创建了用户将用户添加到用户组

6. 得到用户的AccessKey(id,密码)

一定要把这个账号保存下来!!!!之后各种微服务都要用到这个账号!!!!

图片.png

二、开通阿里云短信服务

1、阿里云搜索短信服务,进入短信服务控制台,开通短信服务

图片.png

短信发送频率:

图片.png

2、找到帮助文档

图片.png

三、添加短信模板

短信的具体内容

等待审核通过(需要正当理由)

图片.png

四、添加签名(也就是短信开头那个)

图片.png

五、编写测试代码

此时已经拿到授权码,短信服务,短信模板,短信签名

控制台的快速学习中有默认的demo:

图片.png

图片.png

安装使用SDK

Java SDK 文档

六、编写可复用的微服务接口,实现验证码的发送

1. 新建一个springboot的项目,导入依赖

      com.aliyun

      aliyun-java-sdk-core

      4.0.3

      com.alibaba

      fastjson

      1.2.75

      org.springframework.boot

      spring-boot-starter-data-redis

 

2. 测试短信服务

   // 连接阿里云,有三个参数

   // 1.地区  一般不变   2.accsessKey账号替换   3.账号的密码!  自己去阿里云找自己的账号密码

   DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");

   //构建一个客户端

   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");   //自定义

   //自定义的参数(手机号,验证码,签名,模板)

   //  request.putQueryParameter("RegionId","cn-hangzhou");  

   request.putQueryParameter("phoneNumbers", "手机号");   //这里的手机号是接受短信的对象

   request.putQueryParameter("signName", "阿里云对应的签名名称写在这里");

   request.putQueryParameter("TemplateCode", "阿里云模板对应的Code写在这里");

   //构建一个短信验证码

   HashMap map = new HashMap<>();

   map.put("code", 2233);

   request.putQueryParameter("TemplateParam", JSON.toJSONString(map));

   try {

       CommonResponse response = client.getCommonResponse(request);   //发送

       System.out.println(response.getData());  //响应

   } catch (ServerException e) {

       e.printStackTrace();

   } catch (ClientException e) {

       e.printStackTrace();

   }

3. 真实业务

1. 创建业务文件夹

图片.png

2. 创建接口SendSms

public interface SendSms {

   //要传进来一个手机号,模板号,还有随机生成的验证码

   public boolean send(String phoneNum, String templateCode, Map code);

}

3. 封装SendSms的实现类

@Service

public class SendSmsImpl implements SendSms {

   @Override

   public boolean send(String phoneNum, String templateCode, Map code) {

       // 连接阿里云,有三个参数

       // 1.地区  一般不变   2.accsessKey账号替换   3.账号的密码!  自己去阿里云找自己的账号密码

       DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "密码");

       //构建一个客户端

       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");   //自定义

       //自定义的参数(手机号,验证码,签名,模板)

      //  request.putQueryParameter("RegionId","cn-hangzhou");

       request.putQueryParameter("phoneNumbers", phoneNum);   //这里的手机号是接受短信的对        象

       request.putQueryParameter("signName", "阿里云对应的签名名称写在这里");

       request.putQueryParameter("TemplateCode", templateCode);

       request.putQueryParameter("TemplateParam", JSON.toJSONString(code));

       try {

           CommonResponse response = client.getCommonResponse(request);   //发送

           System.out.println(response.getData());  //响应

           return response.getHttpResponse().isSuccess();

       } catch (ServerException e) {

           e.printStackTrace();

       } catch (ClientException e) {

           e.printStackTrace();

       }

       return false;

   }

}

4. 接口:模拟真实测试:springboot集成redis

在application.properties配置redis后,打开本地redis的服务

srever.port=9000

spring.redis.host=127.0.0.1

spring.redis.port=6379

接口:

package com.sms.controller;

import com.sms.service.SendSms;

import io.netty.util.internal.StringUtil;

import org.apache.catalina.security.SecurityUtil;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.util.StringUtils;

import org.springframework.web.bind.annotation.CrossOrigin;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RestController;

import javax.swing.text.html.HTMLDocument;

import java.util.HashMap;

import java.util.UUID;

import java.util.concurrent.TimeUnit;


/**

* @author 蒋二妹

* @DATE 2021/9/1 - 22:06

*/

@RestController

@CrossOrigin     //跨域支持

public class SmsApiController {

   @Autowired

   private SendSms sendSms;

 @Autowired

   private RedisTemplate redisTemplate;

   @GetMapping("/send/{phone}")

   public String code(@PathVariable("phone") String phone){

       //调用发送方法(模拟真实测试:springboot集成redis)

       //通过手机号获取redis中是否存储过验证码,如果还有则没有过期,没有就重新生成存储进redis

       String code = redisTemplate.opsForValue().get(phone);

       if (StringUtils.isEmpty(code)) {

           return phone + ":" + code + "已存在,还没有过期";

       }

       //重新生成验证码并存储到redis

       code = UUID.randomUUID().toString().substring(0, 4);

       HashMap param = new HashMap<>();

       param.put("code", code);

       boolean isSend = sendSms.send(phone, "需要使用的模板code", param);

       if (isSend) {

           redisTemplate.opsForValue().set(phone, code, 5, TimeUnit.SECONDS);

           return phone + ":" + code + "发送成功!";

       }else {

           return "发送失败!";

       }

   }

}

4. 启动启动类测试即可

localhost:9000/13511299999 回车查看返回字符串,此时手机也收到了一条短信验证码


相关文章
|
11天前
|
域名解析 弹性计算 Linux
阿里云购买云服务器、注册域名、备案及绑定图文教程参考
本文为大家介绍了2024年购买阿里云服务器和注册域名,绑定以及备案的教程,适合需要在阿里云购买云服务器、注册域名并备案的用户参考,新手用户可通过此文您了解在从购买云服务器到完成备案的流程。
阿里云购买云服务器、注册域名、备案及绑定图文教程参考
阿里云域名购买注册流程_创建信息模板_域名实名认证全流程
阿里云域名注册指南:访问[阿里云域名注册入口,查询并注册心仪域名,选择后缀,加入清单后结算。价格因后缀而异,如.com首年78元。创建域名信息模板完成实名认证,首次需上传资料。获取优惠口令并使用可享折扣
|
1天前
|
弹性计算 API Python
阿里云百炼应用之流程编排
阿里云通义百炼平台流程编排使用教程。
|
4天前
阿里云域名注册流程和备案流程(详细图文教程)
阿里云域名注册指南:访问[阿里云域名注册入口,查询并注册心仪域名,如.com/.cn,加入清单后结算。价格因后缀而异,如.com首年78元。创建信息模板进行实名认证,首次需上传资料。获取域名优惠口令并使用,详细步骤见文档。备案流程参照阿里云ICP备案系统。
|
10天前
阿里云域名注册流程图和费用说明,新手第一次购买域名攻略
阿里云域名注册指南:访问[阿里云域名注册入口查询域名,选择后缀,加入清单并结算。价格如.com: 78元/首年。创建信息模板进行实名认证。获取优惠口令并使用,参照流程完成购买。详细步骤及域名价格详情见原文。
32 0
|
15天前
|
弹性计算
阿里云备案流程和操作步骤详解(图文教程)
以下是内容摘要: 本文指导了阿里云账号注册、实名认证及服务器购买流程,并详细阐述了域名注册与备案步骤。首先,需注册阿里云账号并完成个人或企业实名认证,然后选购服务器。接着,进行域名注册与实名认证。备案阶段,用户需在阿里云备案系统中填写相关信息,包括主体信息、网站信息,并上传相关证件照片。提交备案后,系统将进行审核,用户可通过阿里云ICP代备案平台查看进度。整个过程需确保联系方式畅通,以便接收审核通知。
|
15天前
|
域名解析 网络协议 大数据
阿里云域名购买与域名解析使用教程(图文教程)
该文档是关于在阿里云注册账号、购买域名及进行DNS解析的步骤指南。首先,需注册阿里云账号并进行实名认证,建议选择企业认证以便获取企业发票。接着,通过阿里云域名注册页面检查并购买未被注册的域名,将域名添加至购物车并完成支付。购买后,在云解析DNS界面进行实名认证,然后对域名进行解析设置,选择A记录类型,填写主机记录(如www),记录值为云服务器的IP地址,设置TTL,并校验解析是否成功。最后,文中还提及了如何在云服务器上进行实例名称的修改和查看服务器状态等操作。
|
3月前
|
云安全 安全 API
阿里云——OpenAPI使用——短信服务
阿里云——OpenAPI使用——短信服务
168 0
|
5月前
|
安全
阿里云短信服务是可以发送包含下载链接的文本内容的,
阿里云短信服务是可以发送包含下载链接的文本内容的,但是需要注意以下几点:
267 1
|
9月前
|
SQL Java
如何使用阿里云短信服务实现登录页面,手机验证码登录?1
如何使用阿里云短信服务实现登录页面,手机验证码登录?
269 0

热门文章

最新文章