阿里云短信验证码(发送短信验证码)
注意:在需在阿里云短信服务处申请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;}}
阿里云短信验证码(发送短信验证码)相关推荐
- 使用阿里云消息服务mns发送短信
下载mns wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32305/cn_zh/1490269182462 ...
- 使用阿里云的短信服务发送短信
原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发 ...
- 如何使用阿里巴巴短信服务发送短信验证码
关于调用阿里巴巴短信服务发送短信验证的接口的方法: 用户的注册 1.首先我们需要在阿里大于(www.alidayu.com)注册一个账号登录 点击进入控制台 点击使用短信服务 然后需要你申请签名和模板 ...
- tp6框架结合阿里短信接口发送短信并记录redis
tp6框架结合阿里短信接口发送短信并记录redis 1> 开通阿里云短信服务 2> 安装redis服务 3>config配置文件 创建sms.php 文件,配置阿里云短信信息 ret ...
- TP5 短信宝 发送短信验证码
一.请求发送短信接口 public function sendCode(){//接收手机号$data['phone'] = input('get.phone');//判断是否接到手机号$validat ...
- 使用移动云MAS HTTP接口发送短信BASE64加密中文乱码
前阵子有个用移动短信接口发送短信的相关业务,遇到了问题记录一下 为了不使项目重启全部是用jsp编写的,前几步按照移动给的HTTP接口文档来 没有问题 最后进行BASE64加密的时候出现了中文字符乱码的 ...
- php对接短信宝,php使用短信宝发送短信的方法
本文主要和大家分享php使用短信宝发送短信的方法,使用短信宝需要先在官网上注册一个用户名密码,希望能帮助到大家. 注意:如果没有购买短信,则只用来测试短信速度,短信内容不可编辑,只可修改验证码数字.. ...
- 移动MAS短信平台发送短信
MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System;namespace 短信发送 {class Prog ...
- linux 短信功能,Android调用系统短信功能发送短信
Android调用系统短信功能发送短信有两种方法: 第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示: 代码如下: Uri smsToUri = Uri.parse(" ...
- 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓短信功能全解:调用系统短信功能发送短信.彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信. 首先需要 ...
最新文章
- 汇编语言之大小写转换问题
- openmv集成应用_使用OpenMV引导无人机飞行
- GTK实现简单计算器(calculator.c)
- sql server2008 远程过程调用失败
- 新手平面设计师如何在网上接单赚钱?
- 选自《致加西亚的信》
- 【图文讲解】映射——单射-双射-满射概念
- 【简单远程控制】 Metasploit应用
- sql插入语句中value中含有单引号
- new Set( ) 数组去重 适用场景
- 单片机的停车场计数系统c51_基于51单片机的停车场车位管理系统
- Power BI 参数解决源文件路径问题
- nginx配置-根据UA进行域名跳转且仅限域名访问
- 剑指offer 06. 从尾到头打印链表
- 锂电池二阶RC模型参数辨识
- 华为杯大学生计算机软件大赛,关于举办吉林工商学院2020年第一届“华为杯”大学生网上数学建模竞赛的通知...
- IJCAI18 阿里妈妈广告
- 用apidoc 生成在线接口文档
- 云数据库Redis国际站支持4.0
- 改:如何基于开源项目做二次开发