@Controller
@RequestMapping(value="/sms")
public class xxSmsController extends BaseController{
@Resource(name = "xxSmsService")
private xxSmsService xxSmsService;/*** TODO* @方法描述:发送短信验证码【阿里云 云通讯短信API】* @设定文件:@param request* @设定文件:@return* @返回类型:Object* @throws :*/
@RequestMapping("/toSendCode")
@ResponseBody
public Object toSendCode(){Map<String,Object> map = new HashMap<String,Object>();try {//查询第一条开启状态的短信验证码接口PageData pd = new PageData();pd = this.getPageData();pd.put("use_flag", "1");//短信使用场景 1验证码 2短信通知 3推广短信 4群发助手 5其他List<PageData> messageface = appSmsService.searchMessageface(pd);if(messageface != null && messageface.size() > 0){String phone = pd.getString("phone");PageData face_info = messageface.get(0);String code = getThree();PageData sendSmsPD = new PageData();sendSmsPD.put("alive_flag", "1");sendSmsPD.put("alive_time", "600");sendSmsPD.put("code", code);sendSmsPD.put("content", "您的验证码为:"+code+",您正进行XX的身份验证,验证码10分钟内有效,打死不告诉别人!");sendSmsPD.put("phone", phone);sendSmsPD.put("type", "2");xxSmsService.editSmsSend(sendSmsPD);//先关闭同手机号其他的验证码xxSmsService.saveSmsSend(sendSmsPD);//保存验证码短信记录//从前往后:是否开启,key_id,key_secret,手机号,验证码,短信模板编码,短信签名SmsSendUtils.sendSmsVerificationCode(face_info.getString("message_will_open"), face_info.getString("key_id"), face_info.getString("key_secret"),phone, code, face_info.getString("message_remark_autograph"), face_info.getString("message_about_content"));map.put("retCode", "0000");map.put("msg", "短信发送成功");}else{map.put("retCode", "1111");map.put("msg", "未找到短信验证码接口");}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();map.put("retCode", "1111");map.put("msg", "参数转换失败");}return map;
}/*** TODO* @方法描述:验证短信验证码  参数有 phone 和  code* @设定文件:@param request* @设定文件:@return* @返回类型:Object* @throws :*/
@RequestMapping("/checkCode")
@ResponseBody
public Object checkCode(HttpServletRequest request){Map<String,Object> map = new HashMap<String,Object>();try {PageData pd = new PageData();pd = this.getPageData();String phone = pd.getString("phone");String code = pd.getString("code");PageData sendSmsPD = new PageData();sendSmsPD.put("phone", phone);sendSmsPD.put("type", "1");xxSmsService.editSmsSend(sendSmsPD);sendSmsPD.put("alive_flag", "1");List<PageData> sms = xxSmsService.searchSmsSend(sendSmsPD);if(sms != null && sms.size() > 0){PageData codeSend = sms.get(0);if(code.equals(codeSend.getString("code"))){map.put("retCode", "0000");map.put("msg", "验证成功");}else{map.put("retCode", "1111");map.put("msg", "验证码错误");}}else {map.put("retCode", "1111");map.put("msg", "验证码错误");}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();map.put("retCode", "1111");map.put("msg", "参数转换失败");}return map;
}/*** TODO* @方法描述:生成手机验证码* @设定文件:@return* @返回类型:String*/
public static String getThree(){  Random rad=new Random();  return rad.nextInt(1000000)+"";
}
}**sql 关闭同手机号其他的验证码**
<update id="editSmsSend" parameterType="pd">update  表 set alive_flag = 0 <if test='type != null and type != "" and type == "1"'>WHERE TIMESTAMPDIFF(SECOND, create_time, NOW()) > alive_time </if><if test='type != null and type != "" and type == "2"'>WHERE phone = #{phone} </if>
</update>

阿里云短信验证码后端相关推荐

  1. nodejs实现阿里云短信验证码

    nodejs实现阿里云短信验证码 事先准备 1.开通阿里云短信服务 2.获取 AccessKey 代码编写 事先准备 1.开通阿里云短信服务 1⃣️登陆阿里云,然后进入到 https://dysms. ...

  2. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

  3. 阿里云短信验证码实战

    一.创建阿里云短信权限用户 1.登陆阿里云之后我们点击头像,接着点击AccessKey: 2.选择开始使用子用户 : 3.我们先要创建一个用户组: 4.依次点击新建的用户组--授权管理,给用户组授权, ...

  4. 【阿里云短信验证码】麻瓜教程~~~从注册---申请---代码---执行

    阿里云短信验证码 当然啦,学习任何东西第一步就是去注册当前网站的账号. 阿里云的官网:https://www.aliyun.com/?utm_content=se_1008364713 ◆[1.先注册 ...

  5. springboot 使用shiro集成阿里云短信验证码

    目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言:短信验证码是通过发送验证码到手机的一种有效的验证码系统,主要用于验证用 ...

  6. C# ASP.NET MVC 阿里云短信验证码Demo

    相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...

  7. [风一样的创作]二次封装阿里云短信 验证码 发送短信 查询短信 编辑短信

    1.首先要注册阿里云,购买阿里云短信服务,拿到AccessKey ID和AccessKey Secret 链接: https://usercenter.console.aliyun.com/#/man ...

  8. Thinkphp3.2开发阿里云短信验证码

    之前一直使用的是创蓝253的短信验证码,开发起来比较方便,不想阿里云这么复杂.有兴趣的同学可以去看一下创蓝253的短信验证码(https://www.253.com). 今天主要说一下阿里云的短信验证 ...

  9. 阿里云短信验证码的坑.....

    阿里云短信的坑 博主在集成阿里云短信的时候发生了此问题: 明明生成6位数字的验证码结果,通过阿里云短信发送出来有时只有5位. 解决办法也很简单我就直接贴代码,说原因了. 原因是: 问题原因:因为我返回 ...

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

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

最新文章

  1. Redis 高级特性(3)—— 持久化及数据恢复
  2. [Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin
  3. 猫脸关键点检测大赛:三种方法,轻松实现猫脸识别!
  4. Android11——DataBinding的使用
  5. 如何使用开源SFU构建RTC云服务
  6. error: style attribute '@android:attr/windowEnterAnimation' not found.
  7. 第九次psp例行报告
  8. macos系统自动安装mysql_macos系统安装mysql
  9. group by 汇总
  10. 【损失函数】一文弄懂各种loss function
  11. 中国智能硬件调研报告
  12. 洛谷 P2342 叠积木 题解
  13. Shell 的加减乘除
  14. php 批量下载网页文件,批量下载文件(以xxx网站为例)
  15. 3到5年工作经验是如何回答面试中被问到的Java集合框架问题
  16. 蚂蚁金服Java岗内推,quartz定时器的处理
  17. LeetCode—5757. 矩阵中最大的三个菱形和(Get Biggest ...)[中等]—分析及代码(Java)
  18. 脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计一
  19. 中南大学计算机基础在线作业答案三,中南大学计算机基础三答案.doc
  20. DBLP实验数据集处理

热门文章

  1. 未root的情况下获取墨墨背单词的databases文件夹
  2. 九宫格拼图C++源码(以面向对象的思想实现,可以输入8及8以下的任意行列数的九宫格拼图游戏)
  3. 判断字符串是否为空方法
  4. js如何判断字符串是否为空
  5. 三种获取当前时间戳的方式
  6. Python 冒泡排序 代码实现
  7. 小白入门必学——时间复杂度
  8. 《Python金融大数据风控建模实战》 第8章 Logistic回归模型
  9. 金蝶移动bos开发教程_金蝶bos
  10. 如何使用光学检测汽车前仪表盘玻璃