java阿里云短信验证怎么写,这篇文章足够了

首先,我们要先进入阿里云的官网开通产品和短信服务拿到accesskeyid和accesskeysecret

以及签名名称和模板id

        具体获取阿里云id等方式参考官网

链接:阿里云-上云就上阿里云

导入maven依赖:

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>dysmsapi20170525</artifactId>
            <version>2.0.4</version>
        </dependency>

把拿到的accesskeyid和accesskeysecret以及从官网拿到写入的签名名称和模板id设为私有常量

    //密钥accesskeyid
    private static String ACCESSKEYID = "**************************";
    //密钥accesskeysecret
    private static String ACCESSKEYSECRET = "*************************";
    //短信签名名称
    private static String SIGN_NAME="***";
    //短信模板ID
    private static String TEMPLATE_CODE="***";

下面开始正文:

第一步:封装生成随机六位数的方法,下面附上生成随机六位数工具类

//传入几就会生成几位验证码
public static String getAuthCode(int number){

        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < number; i++) {
            int random = (int) (Math.random() * 9);
            sb.append(random);
        }
        return sb.toString();
    }

//调用上面方法生成6位验证码放入实体类对象并转成json格式进行返回
//实体类转json工具类类可以在网上搜一下,有很多
public static String getAuthCode(){
        //生成六位随机验证码,并把验证码转成json,存入缓存
        String authCode = EncryptUtil.getAuthCode(6);
        AutoCode autoCode = new AutoCode();
        autoCode.setCode(authCode);
        String s = JacksonUtil.toJsonStr(autoCode);
        return s;
    }

第二步:把拿到的accesskeyid和accesskeysecret放入阿里的连接中

public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }

第三步:发送短信具体逻辑

//传入要发送的手机号进行发送短信
public static String sendSms(String phone) throws Exception {
        //生成jsonCode随机数字符串
        String authCode = getAuthCode();
        //调用短信
        Client client = SmsUtil.createClient(ACCESSKEYID, ACCESSKEYSECRET);
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setPhoneNumbers(phone)
                //短信签名名称
                .setSignName(SIGN_NAME)
                //短信模板ID
                .setTemplateCode(TEMPLATE_CODE)
                //json验证码
                .setTemplateParam(authCode);
        //运行
        SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
        //拿到返回的基本数据并打印
        SendSmsResponseBody body = sendSmsResponse.body;
        SmsUtil.gethash(null,body);
        return authCode;
    }

第四步:发送短信

 public static void main(String[] args_) throws Exception {
        //单条短信发送方法
        sendSms("***********");
    }

这样最简单的发送短信就完成了

官网里还有批量发短信还有短信回调

如果各位小伙伴在发送出现问题或者想要批量发短信或短信回调及时评论,小编会不定时查看并回复,愿各位码农都能成为公司仰慕的大佬~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java调用阿里云短信接口的步骤: 1. 首先,你需要在阿里云官网注册并创建一个短信服务。你可以参考阿里云官网提供的文档来了解如何创建短信服务。 2. 在你的Java项目中,你需要引入阿里云短信SDK的依赖。你可以在Maven项目中的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20170525</artifactId> <version>2.0.6</version> </dependency> ``` 3. 在你的Java代码中,你需要导入阿里云短信SDK的相关类和方法。例如: ```java import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.sms.model.v20170525.*; ``` 4. 创建一个DefaultAcsClient对象,并设置好AccessKeySecretKey。例如: ```java String accessKeyId = "your_access_key_id"; String accessKeySecret = "your_access_key_secret"; IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultAcsClient client = new DefaultAcsClient(profile); ``` 5. 构造一个SendSmsRequest对象,并设置好短信相关的参数,例如短信签名、模板ID、手机号码和模板参数。例如: ```java SendSmsRequest request = new SendSmsRequest(); request.setSignName("your_sign_name"); request.setTemplateCode("your_template_code"); request.setPhoneNumbers("your_phone_number"); request.setTemplateParam("{\"code\":\"123456\"}"); ``` 6. 调用client的sendSms方法发送短信,并处理发送结果。例如: ```java try { SendSmsResponse response = client.getAcsResponse(request); if (response.getCode() != null && response.getCode().equals("OK")) { System.out.println("短信发送成功"); } else { System.out.println("短信发送失败,错误码:" + response.getCode()); } } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } ``` 请注意,以上代码仅为示例,你需要根据你的实际情况进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值