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

作者:冰湖一角 时间:2023-04-04 19:03:31 

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

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


public class VerifyAction extends BaseAction<VerifyRequest> {
 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")));
     String code = RandomUtil.randomNum(6);
     if (dh3TongSmsOperator.send(UUIDGenerator.generate(), model.getPhone(),
         String.format("尊敬的用户,您的验证码是:%s", code), "【XX系统名】")) {
       userPhoneVerifyService.record(model.getPhone(), model.getType(), code, model.getUserId());
     } else {
       result.setErrorMessage("很抱歉,发送短信失败,请稍后再试");
       result.setResult(JsonResult.ERROR);
       return SUCCESS;
     }
     result.setErrorMessage( "短信验证码发送成功,请在5分钟内及时使用,谢谢!");
   } catch (Exception e) {
     e.printStackTrace();
   }

return SUCCESS;
 }

// 发送语音验证码
 public String sensVoice() {
   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;
     }
     String code = RandomUtil.randomNum(6);
     Dh3TongVoiceOperator dh3TongVoiceOperator = new Dh3TongVoiceOperator(
         commonConfigService.getString("dh3tong", "account"),
         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 void setUserVerifyService(UserVerifyService userVerifyService) {
   this.userVerifyService = userVerifyService;
 }
 public void setPhoneDetectService(PhoneDetectService phoneDetectService) {
   this.phoneDetectService = phoneDetectService;
 }
 public void setAccountService(AccountService accountService) {
   this.accountService = accountService;
 }
}

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

来源:https://www.cnblogs.com/bingyimeiling/p/10685461.html

标签:java,手机,短信,语音,验证
0
投稿

猜你喜欢

  • 如何解决Spring in action @valid验证不生效的问题

    2023-08-29 07:59:56
  • Android实现卫星菜单效果

    2021-12-12 23:44:28
  • SpringBoot如何进行对象复制的实践

    2023-11-23 03:40:19
  • Effective Java (异常处理)

    2022-09-24 12:17:29
  • c#获取存储过程返回值示例分享

    2021-08-24 18:45:48
  • Java SpringBoot Validation用法案例详解

    2023-10-21 15:06:49
  • c#判断磁盘驱动器类型的两种方法介绍

    2023-12-18 10:04:53
  • IDEA中的maven没有dependencies解决方案

    2021-08-01 11:58:50
  • Android封装实现短信验证码的获取倒计时

    2023-06-28 22:57:23
  • 简单了解Java中的可重入锁

    2023-12-18 12:29:19
  • C#适用于like语句的SQL格式化函数

    2022-11-01 22:49:31
  • JavaWeb开发基于ssm的校园服务系统(实例详解)

    2022-11-07 16:40:48
  • jcrop 网页截图工具(插件)开发

    2022-10-21 22:30:19
  • 以一个着色游戏展开讲解Android中区域图像填色的方法

    2023-02-04 10:02:51
  • 基于Java随机生成手机短信验证码的实例代码

    2023-12-22 02:50:49
  • 详解Spring Boot最核心的27个注解,你了解多少?

    2023-11-20 06:23:35
  • Java中的内部类使用详情

    2022-07-24 05:09:38
  • C#将指定目录所有文件名转换成小写的方法

    2023-01-25 23:21:03
  • 详解SpringBoot Start组件开发之记录接口日志信息

    2023-07-26 18:33:34
  • Android内嵌Unity并实现互相跳转的实例代码

    2023-09-22 08:10:43
  • asp之家 软件编程 m.aspxhome.com