使用java实现手机短信验证全过程

目录
  • 一、容联云平台
  • 二、操作教程
    • 2.1注册
  • 三、实践操作
    • 3.1部署项目使用工具
    • 3.2具体操作
      • 3.2.1、Maven依赖
      • 3.2.2、不使用Maven获取JAR包方式
  • 四、测试
    • 4.1、示例代码
      • 4.2、修改步骤
        • 4.2.1、容联云的相关账号信息
        • 4.2.2、修改测试号码等信息
        • 4.2.3、存放哈希进行判断
        • 4.2.4、测试

    一、容联云平台

    容联云平台是实现短信验证、还有语音功能等一些操作的平台,在平台注册还可以获得8元的新手额度,一条短信的费用是006元,也就是6分钱,在初学者测试也是可以非常人性化的,然后我这次进行测试的平台呢,也是用到容联云给进行展示


    二、操作教程

    2.1注册

    当你注册进去之后会有8元的新手额度

    填写测试号码

    然后这里差不多了跟着下面走着

    三、实践操作

    3.1部署项目使用工具

    本次使用的工具是IDEA,然后我为了简便就直接创建了Maven项目进行开发,因为使用到Maven之后是直接导入SDK的依赖即可,就不需要管jar包了

    3.2具体操作

    3.2.1、Maven依赖

    <dependencies>
            <dependency>
                <groupId>com.cloopen</groupId>
                <artifactId>java-sms-sdk</artifactId>
                <version>1.0.3</version>
            </dependency>
        </dependencies>
    

    3.2.2、不使用Maven获取JAR包方式

    容联云通讯——开发文档——下载(短信Demo下载)——SDK参考(JAVA SDK文档):不使用maven时需要下载jar包,点击JAVA SMS SDK进入maven下载即可

    四、测试

    4.1、示例代码

    在容联云已经有了测试的示例,但是我们还需要稍作修改
    下面为SDK的示例示例代码


    这些代码我们可以直接复制过去,等下直接进行使用,当然要注意几点的地方

    4.2、修改步骤

    4.2.1、容联云的相关账号信息

    这三个里面的数据就是填写你容联云内的开发者账号内容

    这是我们要修改的地方之一,修改的内容为
    (1)accountSId
    (2)accountToken
    (3)appId

    4.2.2、修改测试号码等信息

    那么等我们把账户信息修改完之后呢,还需要哪些
    你在发送的时候是不是需要一个6位的随机数!安排,只需要一条代码

    //随机生成6位数字为验证码
    String code = String.valueOf(Math.random()).substring(2, 8);
    System.out.println(code);

    我们再来看看运行效果



    当然还有就是你的手机号、还有模板、模板的一些参数

    这里的模板就是容联云的一个模板了


    我选的登录模板,所以选1就好

    //需要把验证号转发到的手机号码
            String to = "1560*******";
            //在短信管理中选择模板ID,我选择的是1
            String templateId = "1";
            //模板参数
            String[] datas = {code,"30分钟"};
    

    4.2.3、存放哈希进行判断

    //这里是使用了一个哈希map来存放手机号、模板ID、模板参数
            HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
            //如果返回0000则正常发送,否则返回异常
            if("000000".equals(result.get("statusCode"))){
                //正常返回输出data包体信息(map)
                HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
                Set<String> keySet = data.keySet();
                for(String key:keySet){
                    Object object = data.get(key);
                    System.out.println(key +" = "+object);
                }
            }else{
                //异常返回输出错误码和错误信息
                System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
            }
    

    4.2.4、测试

    运行结束后正常情况没报错后一般是手机立马会收到消息的,然后收的验证码消息是和你的运行结果那串数字是一样的,我们这边进行测试了一下,下面来看下结果吧

    (1)运行结果


    (2)手机收到的短信验证结果!


    可以看得到短信验证成功了
    下面我在把我的总体测试代码发在下面,但是要记得把相关的一些数据改成自己的不然会报错呢

    总体测试代码

    package demo;
    
    import com.cloopen.rest.sdk.BodyType;
    import com.cloopen.rest.sdk.CCPRestSmsSDK;
    import java.util.HashMap;
    import java.util.Set;
    
    /**
     * 短信验证测试
     * @author 藤井大叔
     */
    public class SmsDemo {
    
        public static void main(String[] args) {
            //生产环境请求地址:app.cloopen.com
            String serverIp = "app.cloopen.com";
            //请求端口
            String serverPort = "8883";
            //主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN
            String accountSId = "请填写accountSId ";
            String accountToken = "请填写accountToken ";
            //请使用管理控制台中已创建应用的APPID
            String appId = "请填写appId ";
            CCPRestSmsSDK sdk = new CCPRestSmsSDK();
            sdk.init(serverIp, serverPort);
            sdk.setAccount(accountSId, accountToken);
            sdk.setAppId(appId);
            sdk.setBodyType(BodyType.Type_JSON);
            //随机生成6位数字为验证码
            String code = String.valueOf(Math.random()).substring(2, 8);
            System.out.println(code);
            //需要把验证号转发到的手机号码
            String to = "请填写手机号";
            //在短信管理中选择模板ID,我选择的是1
            String templateId = "1";
            //模板参数
            String[] datas = {code,"30分钟"};
            //这里是使用了一个哈希map来存放手机号、模板ID、模板参数
            HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
            //如果返回0000则正常发送,否则返回异常
            if("000000".equals(result.get("statusCode"))){
                //正常返回输出data包体信息(map)
                HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
                Set<String> keySet = data.keySet();
                for(String key:keySet){
                    Object object = data.get(key);
                    System.out.println(key +" = "+object);
                }
            }else{
                //异常返回输出错误码和错误信息
                System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
            }
          }
        }
    

    好了,短信验证其实也是很简单的一个小操作,今天就讲到这

    本文转自网络,如有侵权请联系客服删除。