首页 > 其他分享 >短信发送

短信发送

时间:2023-05-27 10:45:10浏览次数:37  
标签:code 短信 String request 发送 length aliyun

短信发送

前提:基于springboot使用阿里云提供的短信发送业务,如果使用完整版的短信发送功能,那么就需要申请签名和模板,这需要人工审核,需要一些工作日,所以使用短信服务的测试功能

短信服务 (aliyun.com)

帮助文档:短信服务 (aliyun.com)

注意:申请签名和模板,以及账户里有一定余额

添加依赖

<!--        阿里云服务 短信发送-->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.5.16</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>2.1.0</version>
        </dependency>

生成验证码工具类

代码:

package com.itchen.reggie.utils;

import java.util.Random;

/**
 * 随机生成验证码工具类
 */
public class ValidateCodeUtils {
    /**
     * 随机生成验证码
     * @param length 长度为4位或者6位
     * @return
     */
    public static Integer generateValidateCode(int length){
        Integer code =null;
        if(length == 4){
            code = new Random().nextInt(9999);//生成随机数,最大为9999
            if(code < 1000){
                code = code + 1000;//保证随机数为4位数字
            }
        }else if(length == 6){
            code = new Random().nextInt(999999);//生成随机数,最大为999999
            if(code < 100000){
                code = code + 100000;//保证随机数为6位数字
            }
        }else{
            throw new RuntimeException("只能生成4位或6位数字验证码");
        }
        return code;
    }

    /**
     * 随机生成指定长度字符串验证码
     * @param length 长度
     * @return
     */
    public static String generateValidateCode4String(int length){
        Random rdm = new Random();
        String hash1 = Integer.toHexString(rdm.nextInt());
        String capstr = hash1.substring(0, length);
        return capstr;
    }
}

短信发送工具类

直接调用 sendMessage 这个方法就行了,将参数传入

/**
	 * 发送短信
	 * accessKeyId和accessKeySecret填自己的
	 * @param phoneNumbers 手机号
	 * @param code 验证码
	 */
	public  void sendMessage(String signName,String templateCode,String phoneNumbers,String code){

		DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId,accessKeySecret);
		IAcsClient client = new DefaultAcsClient(profile);

		SendSmsRequest request = new SendSmsRequest();
		request.setSysRegionId("cn-hangzhou");
		request.setPhoneNumbers(phoneNumbers);
		request.setSignName(signName);
		request.setTemplateCode(templateCode);
		request.setTemplateParam("{\"code\":\""+code+"\"}");
		try {
			SendSmsResponse response = client.getAcsResponse(request);
			System.out.println("短信发送成功");
		}catch (ClientException e) {
			e.printStackTrace();
		}
	}

标签:code,短信,String,request,发送,length,aliyun
From: https://www.cnblogs.com/itchen-2002/p/17436392.html

相关文章

  • SQL Server通过钉钉机器人直接发送消息
    /**启用OleAutomationProcedures选项execsp_configure'showadvancedoptions',1;goreconfigure;gosp_configure'OleAutomationProcedures',1;goreconfigure;go*/declare@PostDatanVARCHAR(max)='',@ResponseTextVARCHAR(max)=&......
  • 使用 PostMessage 函数来发送带有 std::vector 作为参数的消息
    使用PostMessage函数来发送带有std::vector作为参数的消息,您可以将std::vector的地址封装进LPARAM类型的指针中,并将其传递给PostMessage函数的lParam参数。在接收方,您需要使用reinterpret_cast将LPARAM转换回std::vector的指针,然后使用它来访问std::vector。下......
  • 近万条一级分类经典短信大全ACCESS\EXCEL数据库
    近万条一级分类经典短信大全ACCESS数据库收集的是近万条常用经典短信,之所以称“一级分类”(意思是只有一个大类没有子类),原因是为了区别另外一个有二级分类的短信数据库。近万条一级分类经典短信大全ACCESS数据库中的短信都是经过索引没有收录重复的记录。大类分类情况是:爱情短信(1......
  • FLEX实践—自动发送邮件
    代码:<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"><mx:Script><!--[CDATA[importflash.net.navigateToUR......
  • 邮箱发送邮件
    邮箱发送邮件前置条件:在springboot中使用邮箱发送邮件添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>设置配置文件(application.yml)spr......
  • python 发送微信消息
    python自动化,可以模拟键盘输入,因此,可以控制微信,发送消息,代码如下:1importsys2importpyautogui3importpyperclip4importtime5importconfigparser67"""8安装依赖:9pipinstallpyautoguipyperclippyinstaller1011打包成exe:12pyins......
  • 表格编辑时,根据这一行弹出层显示编辑界面,点击保存时发送请求,请求成功保存好数据到表达
    这是一个网上的列子,一表格,点击编辑时弹出层编辑这一行,点击保存时送请求的完整示例:<template><div><el-table:data="tableData"style="width:100%"><el-table-columnprop="name"label="姓名"></el-table-column>......
  • jrtplib 视频数据发送异常分析记录
    场景之前国标服务推流无人机视频运行一直正常,下午时候只能抓包到信令交互的过程,wireshark没有抓包到视音频数据包排查1怀疑是国标没有收到流媒体转发过来的视音频数据流,导致国标服务无法转发视音频排除:国标日志文件显示已经收到流媒体转发过来的视音频数据流排查2怀疑是国标收到的......
  • Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。
    文章目录1.前言2.使用腾讯云短信接口发送短信3.java连接数据库4.部署到服务器(如果你有的话)目录Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。文章中出现的源码获取方式:评论区留下邮箱地址。创作......
  • 报错问题:谷粒商城关于pubsub、publish报错,无法发送查询品牌信息的请求
    1、npminstall--savepubsub-js2、在src下的main.js中引用:①importPubSubfrom'pubsub-js'②Vue.prototype.PubSub=PubSub ......