短信验证码

controller层

package com.example.demo.controller;import com.example.demo.service.SendSms;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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 java.util.HashMap;
import java.util.UUID;@RestController
@CrossOrigin//跨域支持
public class SmsApiController {@Autowiredprivate SendSms sendSms;@GetMapping("/send/{phone}")public String code(@PathVariable("phone") String phone) throws Exception {//生成验证码String code = UUID.randomUUID().toString().substring(0, 4);HashMap<String, Object> param = new HashMap<>();param.put("code",code);boolean isSend = sendSms.send(phone, param);if (isSend) return "发送成功";else return "发送失败";}}

service层

package com.example.demo.service.impl;import com.alibaba.fastjson.JSONObject;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.example.demo.service.SendSms;
import com.google.gson.JsonObject;
import org.springframework.stereotype.Service;import java.util.Map;import static com.aliyun.credentials.http.FormatType.JSON;//import static org.apache.logging.log4j.message.MapMessage.MapFormat.JSON;@Service
public class SendSmsImpl implements SendSms {/*** 使用AK&SK初始化账号Client** @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {// 您的AccessKey ID和您的AccessKey SecretConfig config = new Config().setAccessKeyId(accessKeyId).setAccessKeySecret(accessKeySecret);// 访问的域名config.endpoint = "dysmsapi.aliyuncs.com";return new Client(config);}@Overridepublic boolean send(String phoneNum, Map<String, Object> code) throws Exception {String accessKeyId = "accessKeyId";String accessKeySecret = "accessKeySecret";String signName = "签名名称";String template="模版CODE";Client client = createClient(accessKeyId, accessKeySecret);SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(phoneNum).setSignName(signName).setTemplateParam(template).setTemplateCode(JSONObject.toJSONString(code));client.sendSms(sendSmsRequest);return true;}
}

短信验证码(阿里云)相关推荐

  1. 商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战

    商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战 文章目录 商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战 第八章 账号微服务注册模块+短信验 ...

  2. Java实现短信验证码(阿里云短信服务)

    前言: 很多时候我们做的项目都需要上图这样的验证码来帮助我们完成更好的功能,比如:什么登录注册,忘记密码需要发送手机验证码之类的啊...下面分享我今天通过阿里云短信服务实现的短信验证码,操作都很简单, ...

  3. 短信验证码 - 阿里云短信服务

    签名与模板 要使用阿里的短信服务,必须先创建签名和模板. 项目示例 业务分析: 用户注册的时候需要短信验证码,我们点击获取验证码的按钮.即调用发送短信的代码,产生一个6位数的验证码,而我们需要验证这个 ...

  4. 海量数据大课学习笔记(8)-账号微服务注册模块+短信验证码+阿里云OSS开发实战-小滴课堂

    文章目录 前言 第1集 账号微服务注册功能和流程介绍 第2集 第三方短信验证码平台接入申请操作指引 第3集 账号微服务短信验证码发送工具类封装实战 第4集 账号微服务短信验证码发送工具类单元测试 前言 ...

  5. Java对接腾讯云短信和阿里云天气预报

    API接口提供商 短信 这里推荐阿里云,比起其他的杂牌方便很多 因为现在审核环境的问题,个人开发者比较难申请到签名和模板 我们需要创建一个微信公众号来作为应用场景 在微信官方的公众号平台上面创建 公众 ...

  6. 短信验证--阿里云短信验证码接口

    前言 公司最近项目需要一个手机验证码的功能,任务确定后,倍感亚历山大,以为和第三方对接的都好麻烦,查阿里的API.网上大神写的博客,各种查之后才发现,简单的一塌糊涂,这里想说个问题,不知道其他的攻城狮 ...

  7. java web 手机验证_javaWeb发送手机短信验证码(云通讯)

    /*** 2>向手机发送验证码 *@paramrequest( telephone 手机号码) *@return向前台返回的结果*/ public voidsendSmsIdentifyingC ...

  8. 如何发送手机短信验证码

    文章目录 阿里云短信业务实战教程 1.阿里云平台的使用 2.创建用户组及用户并添加权限 3.添加短信签名和短信模板并充值费用 4.开发工具进行代码部分(这里使用IDEA) 阿里云短信业务实战教程 手机 ...

  9. node.js实现阿里云配置发送短信验证码

    目录 开始 签名添加 模板添加 测试短信 项目中使用 Core accessKeyId | accessKeySecret params PhoneNumbers SignName TemplateC ...

  10. egg.js 调用阿里云(阿里大于)短信验证码服务

    1.开通阿里云短信服务 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 可以免费申请 企业短信验证码 200条 重点是: 签名名称:接收验证码内容时,[]里的文字. 短信模板code:相当于 ...

最新文章

  1. 清华唐杰:GPT-3表示能力已经接近人类了
  2. FMDB使用SQLite事务Save Point
  3. ibm3650m2 如何安装linux4,System x3650M2 (Type 7947) Windows Server 2008安装指南
  4. UVA10173(求凸包的面积最小外接矩形)
  5. CentOS 7 下的 Firewall
  6. 在图片中添加自己的文本信息(PNG及JPEG格式)
  7. 吴恩达神经网络和深度学习-学习笔记-13-Aadm优化算法(Momentum + RMSprop)
  8. 宏基ACER Aspire R3600 REVO离子平台
  9. 计算机缺少网络插口,笔记本电脑没有网线插口且USB接口太少怎么办?
  10. BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)
  11. Python字符串切片总结
  12. 熊猫分发_与熊猫度假
  13. 趋势交易中区间跨度的定义
  14. python引流_怎样用python写引流脚本
  15. 舒亦梵:这十个小技巧,教你炒黄金长久获利
  16. 用纯CSS让子DIV自适应父DIV的高度
  17. AfxGetMainWnd ,GetDocument ,AfxGetApp ,GetActiveDocument区别
  18. 学位论文重复率要求10%是否合理?
  19. 不同派生方式下基类成员在派生类中的可访问范围属性
  20. 华为OD机试 - 二进制差异数(Java JS Python)

热门文章

  1. Arduino简单实例之七_红外遥控接收
  2. 什么是PixelCNN
  3. python定义列表的方式_Python-列表类型(list)
  4. window生成https证书
  5. fork与clone的区别
  6. 一个本科生去面试算法工程师自取其辱的故事
  7. 合工大 matlab实验报告,合工大2014MATLAB(B)考试卷
  8. 学无止境,温故而知新
  9. vscode连接远程Linux服务器失败
  10. JSDoc 安装教程