短信属于三大运营商的垄断资源,只有通过三大运营商的短信通道才能让短信验证码以接近100%效率到达用户手中。所以一般为了方便起见,我们多数会找一些发送短信验证码的平台,这些平台有的是有API接口的,有的是直接人工操作群发。

下面我们开始今天的正题,使用Java实现短信验证码的发送

短信验证码平台

短信验证码的平台有很多,这里放两个我自己用过的两个平台

  1. 阿里云(这个链接放下面了)
  2. 臻子云

其实API接口的使用方法在官网都有详细的文档,我下面就以 臻子云 为例再赘述一下


1. 阿里云

就我而言,阿里云下我用过两个

(1) API市场>生活服务下的【三网106短信】

(2) API市场>公共事务下的【三网短信验证码】

要说区别可能就是收费不同吧,反正试了一下都能收到,可以根据自己的需求来选择。


下面详细说一下臻子云的使用

2. 臻子云

在放一下传送门

注册就不多说了

登录以后会看到:

可以在财务管理中进行充值,这个平台当时是20元540条短信

短信平台的基本情况就这样,下面开始使用API发送短信的

臻子云SDK开发文档 , 进去可以看到支持比较多的语言也有一些样例和视频教程,下面开始正式的使用

臻子云API发送短信API的使用(Java)

  1. 下载jar包

  2. 导入jar包
    如果是做javaweb开发的小伙伴,这里我使用的是IDEA2021,有关IDEA的一些配置请【移步】[IDEA 2021] IDEA2021 安装、配置、常用快捷键

    另:IDEA2021的javaWeb项目的项目结构相对比于之前的版本有一些不同,如果对项目结构不太清楚的小伙伴,可以移步:【IntelliJ IDEA2021】 JavaWeb项目结构

    我们先导入jar包

  3. 通过AppId 和 AppSecret 来创建自己短信发送的实例

    import com.zhenzi.sms.ZhenziSmsClient;public class PhoneCode {//这里我是个人开发者,使用这个apiUrlfinal String apiUrl = "https://sms_developer.zhenzikj.com"; final String appId = ""; // 这里填写刚才看到的AppIdfinal String appSecret = ""; // 这里填写刚才看到的AppSecretZhenziSmsClient client = new ZhenziSmsClient(apiUrl, appId, appSecret);}
    

    apiUrl为请求地址,个人开发者使用https://sms_developer.zhenzikj.com,企业开发者使用https://sms.zhenzikj.com

  4. 编写一个短信模板


    编写完后需要等待审核通过,就可以进行使用了

  5. 编写一个发送短信的函数

    我们需要知道短信模板的id

    /** @Author YJR-1100* @Description //TODO* @Date 15:15* @param*   number---手机号*   style---要使用的短信模板*   code---发送的短信验证码* @return  **/
    public String sendCode(String number,String style,String code) throws Exception {Map<String, Object> params = new HashMap<String, Object>();//首先传入我们要发送的手机号params.put("number", number);// 可以根据不同的状态选择不同的短信模板,if(style.equals("register")){// params.put("templateId", "{这里是刚才看到的短信模板的ID}");}else {params.put("templateId", "{这里是刚才看到的另一个短信模板的ID}");}// 如果只有一个短信模板,我们可以直接使用下面的代码绑定一个固定的模板// params.put("templateId", "7297");// 这里设置刚才模板中留出来的两个参数的位置,在我的模板里是验证码和有效时间String[] templateParams = new String[2];// 传入验证码和有效时间templateParams[0] = code;templateParams[1] = "5分钟";// 把参数放入map中params.put("templateParams", templateParams);//调用send方法,进行发送String result = client.send(params);// 这里返回json格式的字符串,可以判断是否发送成功return result;
    }
    
     最后调用函数进行短信的发送
    
  6. 一些其他参数

    更多使用细节请看臻子云SDK开发文档


关于短信验证码的发送就到这里吧,欢迎各位路过的大佬评论批评指正,如果觉得本文对你有帮助,希望占用大家一点小时间给我点个赞吧,感谢

[JavaWeb] [IDEA2021] Java 实现【阿里云/臻子云】短信验证码发送【详细】相关推荐

  1. 基于阿里云平台的短信验证码服务API的使用

    基于阿里云平台的短信验证码服务API的使用 第一步:登录阿里云平台 第二步:申请国内文本短信签名 如果是个人作业项目(如作者的签名),可以直接申请测试和学习用的测试签名,该签名的缺点是必须绑定测试手机 ...

  2. 基于阿里云的手机短信验证码和注册校验逻辑

    基于阿里云的手机短信验证码demo实现 1. 环境依赖 2. 页面表单 html 3. 校验与短信 js 4. 工具类 SmsUtils 5. 资源调用 Servlet 阿里云的短信平台:http:/ ...

  3. 使用阿里云提供的短信服务发送短信(个人版)

    本人最近需要实现一个注册发短信验证码的功能,找了几家短信服务平台,如腾讯云,云片网等,发现他们都没有提供给用户个人的短信服务权限,申请短信签名等都需要有企业等相关证明,最后找到了阿里云的短信服务平台, ...

  4. JAVA + 阿里云 实现单个短信发送 和 批量短信发送(直接拷贝就能使用)

    JAVA + 阿里云 实现单个短信发送 和 批量短信发送 一.阿里云官网相关操作 1.1 秘钥获取 1.2 签名申请 在短信服务中,找到国内消息-签名管理-添加签名, 并等待签名审核通过 1.2 模板 ...

  5. 阿里云接口实现短信发送java版

    阿里云接口实现短信发送java版 1. 前期准备 1.1.开通阿里云短信服务 1.2.申请签名管理和模板管理 1.3.获取Access_key和Access_secret 2.代码部分 2.1.在po ...

  6. 健康管理系统第六天(移动端开发之体检预约_经典五表联查_调用阿里云提供的短信服务进行短信验证码发送)

    一.移动端开发 1.移动端开发方式 随着移动互联网的兴起和手机的普及,目前移动端应用变得愈发重要,成为了各个商家的必争之地.例如,我们可以使用手机购物.支付.打车.玩游戏.订酒店.购票等, 以前只能通 ...

  7. Java调用SMSLib用单口短信猫发送短信详解

    技术园地 当前位置:短信猫网站主页 > 技术园地 > [转载]Java调用SMSLib用单口短信猫发送短信详解 发布时间:2017/02/09 点击量:620 SMSLib是Apache的 ...

  8. java实现短信验证码发送(基于阿里云短信sdk)

    随着互联网的兴起,各行各业的需求都在不断的增加.随着业务的扩大,企业给用户发送短信验证码的业务,也是如火如荼.在这里,calvin给各位开发者推荐阿里云短信平台.原因有二:1.接入较简单,开发成本低 ...

  9. 阿里大鱼进行发短信业务---使用详细步骤-Java操作

    文章目录 前言 一.开通短信服务 二.快速学习 三.签名管理 1. 何为签名 2. 添加签名 四.模板管理 1. 何为模板 2. 添加模板 五.Java中使用阿里大鱼 1. 开发文档 2. 用到的依赖 ...

  10. java实现短信验证码发送(架子是springboot 服务平台选择腾讯云短信服务)

    业务需求:公司扩展新业务,新增短信验证码提醒服务,负责功能模块完善 暂时只研究了腾讯短信服务的发送(看api谁都能copy出来),短信状态回执(也挺简单,只是自己想复杂了),短信回复回执(暂时没弄明白 ...

最新文章

  1. 【MATLAB】将向量表示的多项式用字符串输出的通用函数示例
  2. python性能优化的一些建议(一)
  3. Unicode utf8等编码类型的原理
  4. Python基础教程学习笔记:第二章 列表和元组
  5. redis 哨兵模式 cluster模式区别_Redis哨兵(Sentinel)模式快速入门
  6. 一些JavaScript基本函数
  7. 为什么你跟高手有差距?因为他们会在假期里读这5本书
  8. 事务,动态代理,连接池
  9. 离职阿里4年后,我给年轻人的7点建议
  10. 剑指offer——python【第16题】合并两个有序链表
  11. Anaconda中安装pygame
  12. 系统目录WINDOWS下主要文件夹简介
  13. Atitit.swt 线程调用ui控件的方法
  14. scanner读取带空格字符串_Scanner类提供了输入字符出的方法,下面哪个方法可以实现字符串的输入且该串可以含有空格()。-智慧树JAVA程序设计(山东联盟-山东农业大学)章节答案...
  15. 单例模式详解(线程安全,饿汉,懒汉模式)
  16. html ul4032,国标UL认证安规标准UL1059接线端子及附件.pdf
  17. 24、Scratch教程-图章工具
  18. lintcode算法-3 983 · 棒球游戏
  19. Mac安装/卸载brew
  20. 再见PDF提取收费!我用100行Python代码搞定!

热门文章

  1. php 函数 累乘 累加,如何实现EXCEL中的累加计算【累加累乘】
  2. psd文件图层不多却很大很卡
  3. 阿里 P7 到底该具备什么样的能力?
  4. Axure8.0基础教程
  5. 计算机编码器的工作原理,优先级编码器74LS148的电路结构、工作原理及使用方法...
  6. SpringCloud从零构建(三)——创建消费者Customer
  7. Java实现的中间库
  8. 中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?
  9. Android Studio 华为手机真机调试
  10. 如何从零开始搭建SRE?