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

短信属于三大运营商的垄断资源,只有通过三大运营商的短信通道才能让短信验证码以接近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 {
    	//这里我是个人开发者,使用这个apiUrl
    	final String apiUrl = "https://sms_developer.zhenzikj.com"; 
    	final String appId = ""; // 这里填写刚才看到的AppId
    	final String appSecret = ""; // 这里填写刚才看到的AppSecret
    	ZhenziSmsClient 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开发文档


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值