java实现语音发送,Java实现发送手机短信语音验证功能代码实例

这篇文章主要介绍了java实现发送手机短信语音验证功能代码实例,www.cppcns.com文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

利用第三方平台可以实现发送手机短信验证码和语音验证码的功能,本文使用框架是struts2+spring+hibernate,现就action层给出核心代码功能。

public class VerifyAction extends BaseAction {

private static final long serialVersionUID = 1L;

private CommonConfigService commonConfigService;

private UserPhoneVerifyService userPhoneVerifyService;

private UserVerifyService userVerifyService;

private PhoneDetectService phoneDetectService;

private AccountService accountService;

// 发送短信验证码

public String sensSms() {

try {

result.setResult(jsonResult.SUCCESS);

if (model.getType() == PhoneVerifyType.REGISTER) {

if (userVerifyService.checkRegisterPhone(model.getPhone())) {

result.setErrorMessage("该手机号已注册");

result.setResult(JsonResult.ERROR);

return SUCCESS;

}

}

if (!phoneDetectService.check(model.getPhone())) {

result.setErrorMessage("该手机号异常,不能进行验证操作");

result.setResult(JsonResult.ERROR);

return SUCCESS;

}

Dh3TongSmsOperator dh3TongSmsOperator = new Dh3TongSmsOperator(

commonConfigService.getString("dh3tong", "account"),

DigestUtil.md5(commonConfigService.getString("dh3tong", "password")));

SEhdySImResult(JsonResult.SUCCESS);

if (model.getType() == PhoneVerifyType.REGISTER) {

if (userVerifyService.checkRegisterPhone(model.getPhone())) {

result.setErrorMessage("该手机号已注册");

result.setResult(JsonResult.ERROR);

return SUCCESS;

}

}

if (!phoneDetectService.check(model.getPhone())) {

result.setErrorMessage("该手机号异常,不能进行验证操作");

result.setResult(JsonResult.ERROR);

return SUCCESS;

}

String code = RandomUtil.randomNum(6);

Dh3TongVoiceOperator dh3TongVoiceOperator = new Dh3TongVoiceOperator(

commonConfigService.getString("dh3tong", "account")www.cppcns.com,

DigestUtil.md5(commonConfigService.getString("dh3tong", "password")));

if (dh3TongVoiceOperator.send(UUIDGenerator.generate(), request.getPhone(), code)) {

userPhoneVerifyService.record(request.getPhone(), request.getType(), code, request.getUserId());

} else {

result.setErrorMessage("很抱歉,发送语音失败,请稍后再试");

result.setResult(JsonResult.ERROR);

return SUCCESS;

}

result.setErrorMessage("语音验证码发送成功,请在5分钟内及时使用,谢谢!");

} catch (Exception e) {

e.printStackTrace();

}

return SUCCESS;

}

public void setCommonConfigService(CommonConfigService commonConfigService) {

this.commonConfigService = commonConfigService;

}

public void setUserPhoneVerifyService(UserPhoneVerifyService userPhoneVerifyService) {

this.userPhoneVerifyService = userPhoneVerifyService;

}

public EhdySImvoid setUserVerifyService(UserVerifyService userVerifyService) {

this.userVerifyService = userVerifyService;

}

public void setPhoneDetectService(PhoneDetectService phoneDetectService) {

this.phoneDetectService = phoneDetectService;

}

public void setAccountService(AccountService accountService) {

this.accountService = accountService;

}

}

以上是干货分享,已测试验证过!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Java实现发送手机短信语音验证功能代码实例

本文地址: http://www.cppcns.com/ruanjian/java/274432.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++父类和子类转化致命的代码错误

最近在工作中,出现了严重的代码错误,对象的基类和子类的继承,代码大致如下: class A { };class B : public A { }void main() {A* a;(用于子类对象来进行赋值) new 子类;//错误代码如下B* b (B*) a;b.方法; }//在这个…

JAVA获得天气json数据的方法,获取从天气预报接口返回回来的json数据

WampServer集成环境安装与配置实习到了第三个礼拜了,原来我们小组是以开发php为主的,我们项目的服务器也是用php做的,因此我觉得很有必要学一下php的相关知识,首先当然是搭建环境了,写篇博客分享下经验. 目录: 一.软件下载 二 ...C++与Lua交互(三)通过上一篇…

大专学的pHp找什么工作,大专毕业能做什么工作 毕业都去干嘛了

大专毕业能做什么工作,大专毕业后都去干嘛了,我梳理了基本信息,看来一下!大专毕业能做什么工作专科生毕业之后从业的职位基础包含了社会发展的各个方面。一般能够从业自身技术专业有关的工作中,如果有做生意的技能&…

SpringMVC启动过程详解(li)

通过对SpringMVC启动过程的深入研究,期望掌握Java Web容器启动过程;掌握SpringMVC启动过程;了解SpringMVC的配置文件如何配置,为什么要这样配置;掌握SpringMVC是如何工作的;掌握Spring源码的设计和增强阅读…

fusioncharts json java,FusionCharts使用教程:利用XML/JSON属性加载外部LOGO

在使用FusionCharts图表时,你可以在运行时加载外部Logo并显示于图表中。Logo可以是GIF/JPEG/PNG或SWF文件。你可以使用chart元素的logoURL属性来加载一个Logo。XMLJSON{"chart":{ "yaxisname":"Sales Figure", "caption":&…

java redis 多节点,Redis单机多节点集群部署,超简单

1、在虚拟机中部署具有三个主节点,三个从节点的集群(注,必须要有从节点),虚拟机的IP地址为192.168.133.129,三个主节点的部口号分别为7001(从:7004)、7002(从:7005)、7003(从:7006)。2、安装Red…

matlab检测串口数据帧头,MATLAB 串口读取姿态数据及GUI实时动态显示设计

上一篇实现了Matlab 对串口数据的读取,数据可以读取并且保存到本地。本文主要设计GUI并且动态的显示曲线。可以更直观的观察实时的姿态数据和传感器数据。GUI设计效果:姿态GUi.png分别设置三个区域,分别为数据接收显示区域,串口设…

[转]面向对象的六大原则

现在编程的主流语言基本上都是面向对象的。如C#,C,JAVA。我们在使用时,已经构造了一个个的类。但是往往由于我们在类内部或外部的设计上存在种种问题,导致尽管是面向对象的语言,却是面向过程的逻辑,甚至维护…

matlab中response函数,matlab函数的种类

突然发现matlab的函数还是很有讲究的,以前只是用,很少注意这个问题,现在看到了稍微总结一下吧。在matlab帮助中搜索Types of Functions,可以看到matlab常用的函数种类:Anonymous Functions --匿名函数Primary Function…

面向对象的十大原则

面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经…

php返回支付状态,magento paypal返回支付状态

paypal帐户,帐户类型分为Personal(个人)、Premier(高级)和Business(商业),他们的差别对于开发者来 说主要是返回的信息,Personal的不能使用IPN和PDT等商家工具,即不能获取交易信息,但是Personal帐户收款无需手续 费&am…

上下文管理、redis发布订阅、RabbitMQ发布订阅、SQLAlchemy

一、上下文管理 import contextlib contextlib.contextmanager def work_state(state_list,worker_thread):state_list.append(worker_thread)try:yieldfinally:state_list.remove(worker_thread) free_list[] current_thread"alex" with work_state(free_list,curr…

php symbol table,gdb方式遍历EG(symbol_table) 哈希表的key_PHP教程

Sara Golemon写过一篇文章,里面提到:“是否存在特别的地方可以找到GLOBALS数组?”答案是“存在”,就是EG(symbol_table)-Executor Globals结构,她也给出了找的具体实例,如下PHP_FUNCTION(confir…

常用快捷键归纳

CtrlX     剪贴 CtrlC    复制 CtrlV    粘贴 CtrlD    删除对应行 CtrlA    全选 CtrlZ    撤销 Alt↑    两行代码互换 CtrlAltX J 运行代码 CtrlshiftO 添加缺少的包, Ctrlshift↓  向下复制本行代码转载于:https://www.cnblogs.c…

php edm 系统,edm.php

// ----------------------------------------------------------------------// | 科创众达// ----------------------------------------------------------------------// | Copyright (c) 2011 http://ctrlcoo.com All rights reserved.// -------------------------------…

jQuery选择id属性带有.点符号元素的方法

如果jquery要选择的元素id中带有点符号&#xff0c;在选择时需要在点前面加上两个反斜杠&#xff0c;如&#xff1a;$("#address\\.street").text("Enter this field");<div id"address.street"> http://www.jb51.net </div> 转载于…

单账户登录踢人 php,踢人下线

前言 在java的世界里&#xff0c;有很多优秀的权限认证框架&#xff0c;如Apache Shiro、Spring Security 等等。这些框架背景强大&#xff0c;历史悠久&#xff0c;其生态也比较齐全。 但同时这些框架也并非十分完美&#xff0c;在前后台分离已成标配的互联网时代&#xff0c;…

python 基础,包括列表,元组,字典,字符串,set集合,while循环,for循环,运算符。...

1.continue 的作用&#xff1a;跳出一次循环&#xff0c;进行下一次循环2.break 跳出不再循环3.常量 &#xff08;全是大写&#xff09;NAME cjk 一般改了会出错4.python的第三方库&#xff0c;先安装再导入。装模块&#xff1a;pip 命令例如&#xff1a;pip install pandas5…

10054 java,为什么Socket.Receive在远程主机断开连接时抛出SocketException(10054)?

我以前用C编写套接字程序&#xff0c;无法理解为什么会发生这种情况 .我的服务器在接收调用时阻塞&#xff0c;当它返回0时&#xff0c;我打破了while循环并关闭了线程 .public class MyServer {public MyServer() {}public void Init() {ThreadPool.QueueUserWorkItem(StartLi…

SQL 截取字符

select SUBSTRING(123,abcdefg,charindex(,,123,abcdefg,0)1,LEN(123,abcdefg)-charindex(,,123,abcdefg,0)) select SUBSTRING(123,abcdefg,0,charindex(,,123,abcdefg,0))转载于:https://www.cnblogs.com/kunEssay/p/5726672.html