springboot整合容联云发短信验证码

187 阅读1分钟

springboot整合容联云发短信验证码

1 前提条件

1.1 官网,注册之后进入首页,得到ACCOUNT SID------AUTH TOKEN

在这里插入图片描述

1.2 创建应用

在这里插入图片描述

1.3 填写应用信息

在这里插入图片描述

1.4 填写测试号码信息

在这里插入图片描述

2 依赖导入

 <!--容联云通讯短信-->
        <dependency>
            <groupId>com.cloopen</groupId>
            <artifactId>java-sms-sdk</artifactId>
            <version>1.0.1</version>
        </dependency>

<!--        &lt;!&ndash; 翻看了容联云的源码发现需要依赖谷歌的gson,如果不添加这个会报错 &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>com.google.code.gson</groupId>-->
<!--            <artifactId>gson</artifactId>-->
<!--            <version>2.8.6</version>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>

3 Java实现代码

package com.xjw.sms.utils;
import java.util.HashMap;

import com.cloopen.rest.sdk.CCPRestSmsSDK;
import org.apache.commons.lang3.RandomStringUtils;

/**
 * 发送短信工具类
 *
 * @author king-j
 * @Date 2022-11-28
 */
public class SDKTestSendTemplateSMS {

    public static void main(String[] args) {
        String sms = sms("1995835xxxx");
        System.out.println(sms);
    }
    /**
     * 容联云account:202811xxxx@qq.com password:numberNumberNumberBigFirstSmallOtherTwo(密)
     * 发送验证码工具类
     *
     * @param phone 电话号码
     * @return 验证码
     */
    public static String sms(String phone) {
        HashMap<String, Object> result = null;
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
        // 初始化服务器地址和端口,生产环境配置成app.cloopen.com,端口是8883.
        restAPI.init("app.cloopen.com", "8883");
        // 初始化主账号名称和主账号令牌,登陆云通讯网站后,可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
        restAPI.setAccount("8a216da884bbfa1501xxxxxxxxx", "b62aea4ed03xxxxxxxxxxx");
        // 请使用管理控制台中已创建应用的APPID。
        restAPI.setAppId("8a216da884bbfxxxxxxxxxxxxxx");
        String code = RandomStringUtils.randomNumeric(6);
        //设置需要发送的手机号和发送的验证码及过期时间
        result = restAPI.sendTemplateSMS(phone, "1", new String[]{code, "1"});
        if ("000000".equals(result.get("statusCode"))) {
            return code;
        } else {
            //异常返回输出错误码和错误信息
            String s = "错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg");
            return s;
        }
    }
}