注意:在需在阿里云短信服务处申请accessKeyId,accessKeySecret,还有短信名头,短信模板填入下方空处
首先创建一个随机生成二维码的工具类CodeUtils
public class CodeUtils {/*** 生成6位随机数验证码* @return*/public static String getvcode(){StringBuilder vcode = new StringBuilder();for (int i = 0; i < 6; i++) {vcode.append((int)(Math.random() * 9));}return vcode.toString();}
}

发送短信验证码工具类SmsUtils

package com.lzy.shiyuan.utils.smsUtils;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.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
/*** 功能描述:* @param:* @return:* @auther: lzy* @date: 2019/3/16 0016 15:00*/
public class SmsUtils {/*** 20 * @param args 21*/// 随机验证码private int code;public int getCode() {return code;}public void setCode() {code = (int) ((Math.random() * 9 + 1) * 100000); // 每次调用生成一次六位数的随机数}// 产品名称:云通信短信API产品,开发者无需替换static final String product = "Dysmsapi";// 产品域名,开发者无需替换static final String domain = "dysmsapi.aliyuncs.com";public String codetemp;// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)static final String accessKeyId = "";static final String accessKeySecret = "";public String sendSms(String telphone, Integer statusCode) 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();// 使用post提交request.setMethod(MethodType.POST);// 待发送的手机号request.setPhoneNumbers(telphone);// 短信签名request.setSignName("");// 短信模板IDif (statusCode == 1) {request.setTemplateCode("");// 注册时获取验证码} else if (statusCode == 2) {request.setTemplateCode("");// 登录时获取验证码} else if (statusCode == 3) {request.setTemplateCode("");// 身份验证} else if (statusCode == 4) {request.setTemplateCode("");// 登录异常} else if (statusCode == 5) {request.setTemplateCode("");// 修改密码} else if (statusCode == 6) {request.setTemplateCode("");// 信息审核验证码}// 验证码SmsUtils sms = new SmsUtils();sms.setCode();codetemp = sms.getCode() + "";System.out.println("code:        " + codetemp);/** 可选:模板中的变量替换JSON串, 如模板内容为"亲爱的${name},您的验证码为${code}"时,* 此处的值为{"name":"Tom","code":"1454"} \ 反斜杠为转义字符,使得输出双引号*/request.setTemplateParam("{\"code\":\"" + codetemp + "\"}");// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者// request.setOutId("1454");SendSmsResponse response = acsClient.getAcsResponse(request);if (response.getCode() != null && response.getCode().equals("OK")) {// 请求成功System.out.println("发送成功!");} else {System.out.println("发送失败!");}return codetemp;}
}

controller

package com.lzy.shiyuan.controller;import com.aliyuncs.exceptions.ClientException;
import com.lzy.shiyuan.utils.smsUtils.SmsUtils;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.Map;/*** @author lzy* @Date 2019/3/16 0016 14:26* @Version 1.0* @name*/
@CrossOrigin( maxAge = 3600 )
@RestController
public class SmsController {/*** 功能描述:发送短信验证码* @param: [phone]* @return: java.util.Map<java.lang.String,java.lang.String>* @auther: lzy* @date: 2019/3/16 0016 15:15*/@PostMapping("sendSms")public Map<String,String> sendSms(String phone){Map<String,String> resultMap = new HashMap<>(31);System.out.println("-------------- 发送短信验证码 --------------");System.out.println("===>>> phone:"+phone);if(phone!=null){SmsUtils smsUtils = new SmsUtils();boolean ok = true;String code = null;try {code = smsUtils.sendSms(phone,3);}catch (ClientException e){e.printStackTrace();ok = false;}if(ok){resultMap.put("code","0");resultMap.put("sms",code);resultMap.put("msg","验证码已发送,请稍等");}else{resultMap.put("code","1");resultMap.put("msg","发送失败,请稍后重试");}}else{resultMap.put("code","1");resultMap.put("msg","电话号码不能为空");}return resultMap;}}

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

  1. 使用阿里云消息服务mns发送短信

    下载mns wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32305/cn_zh/1490269182462 ...

  2. 使用阿里云的短信服务发送短信

    原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发 ...

  3. 如何使用阿里巴巴短信服务发送短信验证码

    关于调用阿里巴巴短信服务发送短信验证的接口的方法: 用户的注册 1.首先我们需要在阿里大于(www.alidayu.com)注册一个账号登录 点击进入控制台 点击使用短信服务 然后需要你申请签名和模板 ...

  4. tp6框架结合阿里短信接口发送短信并记录redis

    tp6框架结合阿里短信接口发送短信并记录redis 1> 开通阿里云短信服务 2> 安装redis服务 3>config配置文件 创建sms.php 文件,配置阿里云短信信息 ret ...

  5. TP5 短信宝 发送短信验证码

    一.请求发送短信接口 public function sendCode(){//接收手机号$data['phone'] = input('get.phone');//判断是否接到手机号$validat ...

  6. 使用移动云MAS HTTP接口发送短信BASE64加密中文乱码

    前阵子有个用移动短信接口发送短信的相关业务,遇到了问题记录一下 为了不使项目重启全部是用jsp编写的,前几步按照移动给的HTTP接口文档来 没有问题 最后进行BASE64加密的时候出现了中文字符乱码的 ...

  7. php对接短信宝,php使用短信宝发送短信的方法

    本文主要和大家分享php使用短信宝发送短信的方法,使用短信宝需要先在官网上注册一个用户名密码,希望能帮助到大家. 注意:如果没有购买短信,则只用来测试短信速度,短信内容不可编辑,只可修改验证码数字.. ...

  8. 移动MAS短信平台发送短信

    MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System;namespace 短信发送 {class Prog ...

  9. linux 短信功能,Android调用系统短信功能发送短信

    Android调用系统短信功能发送短信有两种方法: 第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示: 代码如下: Uri smsToUri = Uri.parse(" ...

  10. 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓短信功能全解:调用系统短信功能发送短信.彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信. 首先需要 ...

最新文章

  1. 汇编语言之大小写转换问题
  2. openmv集成应用_使用OpenMV引导无人机飞行
  3. GTK实现简单计算器(calculator.c)
  4. sql server2008 远程过程调用失败
  5. 新手平面设计师如何在网上接单赚钱?
  6. 选自《致加西亚的信》
  7. 【图文讲解】映射——单射-双射-满射概念
  8. 【简单远程控制】 Metasploit应用
  9. sql插入语句中value中含有单引号
  10. new Set( ) 数组去重 适用场景
  11. 单片机的停车场计数系统c51_基于51单片机的停车场车位管理系统
  12. Power BI 参数解决源文件路径问题
  13. nginx配置-根据UA进行域名跳转且仅限域名访问
  14. 剑指offer 06. 从尾到头打印链表
  15. 锂电池二阶RC模型参数辨识
  16. 华为杯大学生计算机软件大赛,关于举办吉林工商学院2020年第一届“华为杯”大学生网上数学建模竞赛的通知...
  17. IJCAI18 阿里妈妈广告
  18. 用apidoc 生成在线接口文档
  19. 云数据库Redis国际站支持4.0
  20. 改:如何基于开源项目做二次开发

热门文章

  1. 2023最新仿今日头条新闻网站源码+带自动采集API更新文章
  2. react native微信登录授权,以及一些错误
  3. Flask——转换器
  4. SQLServer常用简单语句及举例
  5. 【NLP】吊打BERT、GPT、DALL·E,跨模态榜单新霸主诞生!
  6. 仿射密码python_仿射密码加解密 python
  7. 腾讯云cos html,腾讯云COS对象存储基础设置全攻略记录
  8. matlab符号函数的除法,汇编语言IDICV指令:有符号数除法
  9. 正向代理反向代理,清晰直观
  10. DeviceDriver(十):MISC驱动