前言

公司最近项目需要一个手机验证码的功能,任务确定后,倍感亚历山大,以为和第三方对接的都好麻烦,查阿里的API、网上大神写的博客,各种查之后才发现,简单的一塌糊涂,这里想说个问题,不知道其他的攻城狮们是不是和我一样的心里,刚接触个没做过的任务时,会一脸懵里的着急,无从下手的感觉,后来会了,就觉得简单的一*,在这里我说一下自己的体会,遇到任何难点,先理思路、任务拆分、逐个查资料,其实一套下来,就不会那种一脸懵逼的干着急。。。

所需条件

1、阿里云账户

2、开通云通讯中的短信服务

3、申请短信签名和模板

4、创建access_key和access_secret

5、然后就是代码编写

话不啰嗦,直接开始开发步骤

开发步骤

开通短信服务

创建创建access_key和access_secret

申请短信模板和签名

开发步骤

1、创建AliyunConfig类

package com.preread.user.config;import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;import java.util.Random;/*** @Description: 阿里云短信接口配置类* @author: yangxf* @date: 2019/4/11 15:01*/
public class AliyunConfig {/* 短信API产品名称(短信产品名固定,无需修改) */private static final String product = "Dysmsapi";/* 短信API产品域名,接口地址固定,无需修改 */private static final String domain = "dysmsapi.aliyuncs.com";/* 此处需要替换成开发者自己的accessKeyId和accessKeySecret(在阿里云访问控制台寻找) */private static final String accessKeyId = "你的accessKeyId"; //TODO: 这里要写成你自己生成的private static final String accessKeySecret = "你的accessKeySecret";//TODO: 这里要写成你自己生成的/* 短信发送 */public static SendSmsResponse sendSms(String phone) throws ClientException {/* 超时时间,可自主调整 */System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");/* 初始化acsClient,暂不支持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();/* 必填:待发送手机号 */request.setPhoneNumbers(phone);/* 必填:短信签名-可在短信控制台中找到 */request.setSignName("提前看"); //TODO: 这里是你短信签名/* 必填:短信模板code-可在短信控制台中找到 */request.setTemplateCode("你的模板code"); //TODO: 这里是你的模板code/* 可选:模板中的变量替换JSON串,如模板内容为"亲爱的用户,您的验证码为${code}"时,此处的值为 */request.setTemplateParam("{\"code\":\"" + getMsgCode() + "\"}");// hint 此处可能会抛出异常,注意catchSendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){System.out.println("短信发送成功!验证码:" + getMsgCode());}else {System.out.println("短信发送失败!");}return sendSmsResponse;}/*** @Function: 生成验证码* @author:   yangxf* @Date:     2019/4/11 15:30*/private static String getMsgCode() {int n = 6;StringBuilder code = new StringBuilder();Random ran = new Random();for (int i = 0; i < n; i++) {code.append(Integer.valueOf(ran.nextInt(10)).toString());}return code.toString();}
}

2、controller层调用

/** * @Function: 短信验证接口 * @author: Yangxf * @Date: 2019/4/11 15:39
*/
@RequestMapping("/smsverification")
public Object SmsVerification(@Param("phone") String phone) { return userViewService.SmsVerification(phone);
}

3、service层代码

/*** @Function: 短信验证* @author:   Yangxf* @Date:     2019/4/11 15:56* @param:    phone 手机号*/
@Override
public Map<String, Object> SmsVerification(String phone) {Map<String, Object> map = new HashMap<>();try {AliyunConfig.sendSms(phone);map.put("code", 200);map.put("msg", "短信验证发送成功");return map;} catch (ClientException e) {map.put("code", 300);map.put("msg", e.getMessage());return map;}
}

4、集成阿里云SDK

        <!-- 阿里云短信SDK --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.1.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.7</version></dependency>

至此代码阶段OK,可以测试了

效果如下:

觉得有收获的小伙伴留下一脚印—_—!

SpringBoot实现阿里云短信接口对接相关推荐

  1. springboot项目调用阿里云短信接口(包括短信上行)

    最近一直在做项目,很久没有写过博客了,最近做的一个项目中遇到了一个业务需要用到短信功能包括了发送短信和短信回复之后要收到回复内容,阿里云短信服务是一个非常好的平台,里面提供了多种短信接口可以供我们使用 ...

  2. SpringBoot集成阿里云短信服务

    SpringBoot集成阿里云短信服务 1.准备工作 2.项目集成 2.1 添加依赖 2.2 配置文件 2.3 业务逻辑实现 在实际项目中经常有发送短信的功能,今天进说一下对接阿里云短信服务实现短信发 ...

  3. SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)

    前言 网上关于实操性的文章普遍大部分都记录不全,要么只记录重点部分,对于刚学习的小伙伴来说看起来是比较困难的 所以,基于这一点. 该文章会详细介绍使用SpringBoot整合阿里云短信服务的每一步过程 ...

  4. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  5. 云片短信php接口_php与阿里云短信接口接入

    使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId 相当于你的个人账户密钥: 2. accessKeySecr ...

  6. C# 阿里云短信接口调用(不使用SDK,单文件完成)

    虽然阿里云短信接口,提供了很多种语言的SKD,但是对应C#而言,如果使用阿里云SDK,你的项目中需要引入一大堆的dll,像这样: 我只需要发个短信,没必要引入这么多dll吧.于是,根据阿里云官方文档, ...

  7. springboot集成阿里云短信服务,实现发送短信功能

    springboot集成阿里云短信服务,实现发送短信功能 准备工作: 1.登陆阿里云->进入控制台->开通短信服务(进入后根据提示开通) 2.充值(借人家平台发短信你以为不要钱的?我充了3 ...

  8. 微信小程序手机号验证码登录(调阿里云短信接口)

    小程序效果 代码 <view class='content'><form bindsubmit="formSubmit"><view class='p ...

  9. Java调用阿里云短信接口,发送短信

    Java调用阿里云短信接口,发送短信 1.短信服务这个很简单,只需要知道accessKeyId(AK).accessKeySecret(SK).短信签名.短信模板即可. 2.域名和产品名称是固定的,使 ...

  10. 蚂蚁分类信息系统mymps对接阿里云短信接口

    蚂蚁分类信息系统(mymps)是基于PHP+Mysql开发的分类信息程序CMS,以负载能力强.安全性高.操作简单而著称,深受分类信息网站站长喜爱,为在WINDOW/LINUX服务器上架设分类信息网站提 ...

最新文章

  1. DFT的准备(一)(对离散序列的傅里叶分析大总结)
  2. angular Ng-Zrro树形控件 异步加载
  3. 汇编调用c语言函数 call printf,如何在汇编调用c语言函数?
  4. OpenYurt 入门 - 在树莓派上玩转 OpenYurt
  5. DigSci科学数据挖掘大赛:如何在3天内拿下DigSci亚军
  6. LazyInitializationException的四种解决方案–第2部分
  7. 一键生成安卓证书_【带壳截图+电影台词 生成器】
  8. 全自动光电整纬机安装和功能分析
  9. network-monitor
  10. JAVA8 之 Stream sorted() 示例
  11. js里apply用法
  12. 计算机房安全防范措施,机房安全防护方案
  13. 学校计算机机房使用登记表,计算机机房使用登记表.xls
  14. 1038 Recover the Smallest Number (30 分)-字符串分段排序
  15. 蔚来、小鹏、理想自动驾驶能力的纵向演进与横向比较
  16. 蚪侠-远程泛目录[泛域名+泛目录+泛内页]-[代码+汉字]干扰-字体繁简切换-蜘蛛欺骗-主动推送_镜像版-V25版
  17. 设置Word文档密码的两种方式
  18. vue-seamless-scroll 点击click失效
  19. 乐华娱乐IPO搁浅:王一博是旗下艺人 CMC阿里字节是股东
  20. php图片平铺,php平铺水印/图片添加水印/图片合成

热门文章

  1. 一文详解HFSS波端口和集总端口
  2. Chromium OS autotest
  3. Android 混淆大全
  4. 简单破解闪电视频转换王
  5. lora 调制解调器计算器_如何将Android手机用作调制解调器; 无需生根
  6. 化学式中间的点怎么打?
  7. 动听百年:音乐播放器发展沉浮史
  8. WordPress插件/WP资源下载管理插件 1.3.4
  9. wi ndows防火墙,网吧的防火墙怎么关?四种方法关闭WINDOWS防火墙
  10. FTL 算法之Arbiter