00:01
各位同学大家好,下面呢,我们继续整合阿林的短信服务,咱们来开发一下发送短信的接口,那我们来写一下,首先在里边呢,我先把相关的类先创建出来,我们要创建controller,包括service,那我来创建,首先我先写一个包,第一个包我们是一个controller。然后第二个包,我们写一个service。现在包都创建了,创建之后呢,我们首先先创建ctrler,那ctrler我给它起个名字,比如说我叫这个msma片CTRL了。这是我们创建的controller,创建之后在上面我们加上相关的注解,第一个controller,然后第二个我们叫这个request的mapping,给它起个名字,比如说这个名字我们就叫APMSM,这样的话完成创建,然后完成创建之后在里边呢,我们来写上它这个相关的方法。
01:06
这个方法呢,因为咱们要叫service里面内容,所以说我在service中把里面内容先创建出来,第一个先写个interface,咱们就叫msm。Service,然后再写这个interface这么一个实现类,我先写个包。然后写上它的实验类。Msm service。ML。让他来实现我们这个接口。所以这样的话呢,咱们现在把这个相关的类和接口都创建出来了,然后创建之后我们先来编写controller,在controlrl中,首先咱把这service先给它注入进来,我们加个private msm service做注入,然后注入之后下面来写下就是发送。
02:00
手机验证码的这么一个方法,那我们来写一下,首先在里边我给他写上一个提交方式,我就来一个get提交,然后在get提交里边给大家起个名字,这名字比如就叫send,传入我们的手机号,我们叫这个for。然后写完之后,下面我们写方法,Public。Result。这个名字我们就叫这个散扣。然后咱们在里边写它的相关的内容,那这过程要怎么做呢?首先给大家先做一个分析,我们注意啊,因为咱们发送验证码的时候,各位同学应该都知道验证码是不是应该有一个有效的时长啊,比如咱们约定在三分钟有效,或者说在五分钟有效,那这个有效时长我们怎么做呢?就是这里边我们用种方案,咱通过red做设置,比如现在我们生成了验证码,那我们进行发送,咱们把这发送验证码放到read钟,然后里边设置它这个有效时间,比如说五分钟,十分钟,而超过时间再取这个值可能就取不到了,所以我们就这么来处理,那这里边要用到ready的这个内容,那我们怎么做呢?给大家写一下。
03:20
首先第一个咱们之前啊,在这个common中应该写了一个RA这么一个配置类,再来看一下是不是有这个配置类,所以我们现在就用red来进行相应操作,那在CTRL中怎么写呢?首先我们先注一个内容,我们来一个al来做注入,然后注入什么呢?就注这个叫red to,就是red模板用它做操作,然后写下。Red Tom,然后里边加上它的泛型,比如我们都写成string,给它起个名字就是red,然后这个写完之后,下面咱们来到我们的方法中,在方法中呢,首先把我们传过来的手机号我们先得到,就是里边的这个手机号,我们叫这个string。
04:13
然后得到手机号之后,咱们下面要怎么做呢?给各位说一下啊,首先咱的做法就是是不是要先从re中取这个验证码呀,如果能取到,那咱们就直接返回,OK,如果说取不到的话,那咱们是不是再进行这么一个发送,所以里边我们肯定就是这么来做,那这里边给大家写一下,首先第一步。咱们先从里边获取一下这个验证码,如果说可以获取到。那怎么样,咱们是不是给它就返回这么一个,OK,这是一个,就是在里边有个方法,它叫这个OS或Y表,然后里边有一个get get中咱就直接传入咱们的phone,比如说咱们后面我们用这个手机号,对于咱的key,然后Y6是咱的验证码,我们就这么来存储。
05:09
我在里边写一下啊,Red key就是我们的手机号。然后rate value6是我们的验证码,所以咱们根据手机号把里面的验证码给他取到,就是KY6取到它的这个值,这个我们叫扣等,然后取到之后下面呢,咱做个判断,就是如果说是验证码,它不等于空,那我们就直接返回OK就可以了,然后我给他判断一下啊,我们加一个string。u.is empty加这个phone,如果说这个手机号验证码不等于空啊,应该是扣等啊扣等不等于空,那咱们现在就给它直接re退out。点上OK。就可以了。
06:00
然后我把这段代码给各位复制过来,咱们来看一下我这里边写的这个相关的工具类,我把依赖给它先引入进来。就是里边有这几个相关的依赖。然后咱们看一下我这里边写的这么一个工具类,它有什么样特点啊,都引入了,然后大家看啊,在这工具类中呢,我现在有这么就是两个方法,第一个方法叫get for bit random,第二个叫get six bit randomable,这两方法什么意思呢?一个是生成四位验证码,一个是生成六位验证码,而两个方法中都是调用这个方法最终生成随机数做到,所以咱们一会儿我们就用四位或者六位做到就可以了,比如说一会儿呢,我们就用这个六位验证码自我生成。这是我写一工具类,那我现在在里边正常下咱们就写一个code,等于这个工具类,我们叫这个random us,点上get six。
07:03
Bit random,这就能生成一个六个验证码,然后生成之后呢,咱们下面来整合阿林的短信服务,做一个发送。那我来整合怎么做呢?咱就调用这个service里边这个方法,比如我们叫散的方法,然后在散的方法中,咱们第一个把这个就是座位手机号传进去,然后第二个呢,再把咱这个四位的验证码给它引,要传过去就传入这两值。然后传完之后,这个里边发送之后,比如再让它返一个值,我就返一个布尔类型的,比如叫意思赞。这是我们写一个方法,这些方法比如说咱在S中做实现,这里给我加个注释。就是通过整合阿里的短信服务进行发送,咱们是调用service方法进行实现。
08:02
这个我们做到了啊,然后做到之后大家看啊,这里边反一个布尔类型,所以咱最后要做个判断,如果说布尔类型是true,那就表示发送成功,那咱把验证码放到我们的read中,如果发送失败,咱直接返回一个提示信息,说发送短信失败,那最后我们来加一个判断。我写一下啊,首先我们加一个意思。三如果它的值等于负,那我们现在就把验证码放到咱们的里面去,我们加一个ready to,点上OPSY表,然后点上一个叫set set中呢,大家看啊,咱们现在用里边的第一个这个方法,就这个方法。然后这个方法中呢,有四个参数,第一个参数就是你的key,我们就是for,第二个参数是验证码,第三个参数是你的时间,比如咱们约定我现在验证码是这个三分钟或者两分钟内有效,最后一个是时间的这个单位,咱们叫这个time union。
09:13
点上这个叫minutes,这大家看这结构啊,第一个是key,第二是value,第三个是时间,第四个是单位,它就表示我们放的是phone加验证码,然后它在两分钟之内有效,超过两分钟就失效了,这是放到re中,然后最终咱给它直接吞一个OK。这样的话完成判断,另外里边还有一个else else就表示发送失败,那咱就退这个result点这个。我们看啊叫fire,然后咱们比如说点上一个message。设置一个值,咱就提示用户说发送短信是吧,所以这样的话呢,大家看现在我就把这个CTRL中的代码我们就完成了,就是里边的这个结构。
10:04
那这过程给各位我再来重复一遍啊,大家看这个特点在这过程中呢,首先我们就是。根据手机号进行发送,咱们传入手机号在里面得到,然后得到之后我们首先先从re中取这验证码,如果能取到咱直接返回,如果取不到,那我们再进行发送,因为咱要用red址设置它的表时间,然后下面就是通过工具类生成六位验证码,另外这里边我们调色的方法进行发送,发送成功放到ready中设置有时间,如果失败直接返回失败信息。这样的话,CTRL我们就完成了,然后完成CTRL之后,咱们下面呢,来写这个service部分。那我在里边把这方法我们先创建。就是里边这个方法发送手机验证码。咱们来到它的实现类中,在实现类里边把这个方法我们最终做实现。
11:06
那咱们看一下这个我们应该怎么去做,首先第一个啊,咱们做的严格点,因为我们现在这里边呢,咱要根据手机号是不是做发送啊,那首先第一步呢,首先做个判断,就是判断一下这个手机号是否为空,如果等于空,暂时不就不需要发送,因为你没有手机号嘛,所以咱们先做个判断,就是写的更严格一点。然后写一下啊,我们来一个strings。意思empty phone如果说它等于空,那我们就直接re一个false,直接反失败,如果它不等于空,那咱们再进行发送,但是发送中怎么做呢?给大家强调啊,而整合阿里的短信服务中,首先第一部分你就需要设立一些相关的一些参数,这参数是一些固定的值,不需要各位记,我在课件中给大家写出来了,咱把那个固定值拿过来改成我们的效果就可以了,因为它是一个固定的结构。
12:13
那我现在把这个给各位拿过来,咱们看一下啊,我在课件中写到的应该是里边的。这个位置就是这个地方。那我现在把这段代码给各位先复制过来,咱把里边的值设置成我们这里边实际的值。那咱们看一下啊,首先第一部分来看,第一部分什么意思啊,因为咱们在操作中呢,我们是需要有些值,这些值呢,就是刚才我们在配置文件中设置的这么几个值。一个是地节点。比如你是杭州是北京,一个是ID,也是密钥,而这三个值咱们刚才应该写过一个工具类,咱通过工具类这支是不是可以得到,就大家看三个值,第一个D节点,第二个ID,第三个是不是要,然后通过这个相关的类把这三个值给它先加载进来,这是我们里边的就是第一部分。
13:13
加载咱们需要的里边的这个值,然后加载之后下面呢,这里边用了一个对象叫common request,通过一个对象来设置蕊筷子是不是就是请求嘛。首先第一个内容就是你那个手机号是什么,比如咱要向某个手机上发送验证码,那你手机号是什么?这里边就写上你那个手机号在这phone,然后第二个是什么呢?就是你那个签名的名称。什么叫签名名称呢?咱们最开始啊,在这个地方是不是给他设置一个签名管理中有个签名名称,所以就把这个名称写出来,那咱们就写它,而我这名称呢,我叫这个名字啊,我这个叫我的鼓励在线教育网站啊,当然你可以改成比如这个上一通验证码发送网站等等,我就写上我之前注册名字,然后第三个这个东西,这是什么呢?是咱们做操作中里面有一个叫做那个模板的code,咱之前见过去写它,最后一个就是写你的验证码,但是验证码需要我们用Jason形式传递,所以里边有这么几个值,那咱把这个值给它快速补充完整。
14:31
咱们往下写一下,第二个就是这个天文名称,我这里叫我的鼓励在线教育网站,跟你当时申请的名称要保持一致,我就用之前我申请的这么一个名称,下一个叫我们这个模板的这个后。写下啊,模板扣的,而模板扣的就是里边的这个纸,咱们把这段名字给他拿过来。我拿到我这里。然后最后一个,呃,加一个引号啊,就是这个名字。
15:03
然后最后一个是什么呢?就是你那个验证码。比如说我们刚才生成一个六个验证码,就是它,但是验证码它要求我们使用这个Jason的格式进行这么一个传递,所以咱需要把验证码变成Jason,我这里是个code,咱需要把code变成Jason,而变成Jason是什么样子,其实就变成这个样子,写下啊,就是一个大括号。然后里边有它的名字,我们就要扣这位置,有它这个值,比如说我们是123456,咱需要把这个变成这个样子,那怎么变呢?多种方式,第一种方式你可以直接把它做拼接,这是可以的。另外你可以把它呢转成一个这格式,我这里边是用了一个Jason工具,把它做了一个转换,那里边我来做一下啊,咱写一个最短的方式,比如说我就直接写个map,然后把map里边设置它的code和验证码,然后用它做转换,或者说你直接拼接也可以。
16:06
那我来一个string。Object,然后这个我叫。我们等于这个溜上一个哈西麦克。U上这么一个map集合,然后咱们向map集合中来设置我们这个值,我来设置P点上put,它的名字固定的就要扣的这个值,就是咱们传过来这个手机验证码,然后这个写完之后,咱用这个方法Jason object把这map即可变成Jason,其实就是这种格式,最终这些值我们都完成传递。把它拿回来我写一下啊,就是最终咱就调用方法进行短信的发送,然后大家看这里边怎么做的,首先在里边呢,咱通过这个,比如刚才我们看到里边的就是。
17:03
这个对象通过它里面这个方法叫get common response,然后里边就是传入你的request对象,Request中刚才咱们设置了是不是很多值啊,所以现在这个方法就能完成发送,然后发送之后通过这里边的response会反映一个值,这个值它的方法名字叫意思size。大家看是什么,是不是一个布尔类型啊,如果说你成功,那这反应就是true,如果你失败,那他返回就是boss。包括最后它里边会有一些异常,我把异常给它直接就是。依赖引入。这些比如击败,然后最后如果这些啊它失败,那我们最终也定是旅存这个boos,这就是关于我们完成的里边的这个发送短信验证码方法,所以咱们现在这个代码就完成了,所以大家照这个特点啊,我们在最后看一遍,然后最终我们会做个测试。
18:03
刚才我们的写法就是在CRL中得到你的手机号,然后咱们通过red来设置它的有效时间。在service里边,我们就是通过阿伦的短信服务的整合,设置它的相关参数,最终进行发送。在设置的时候,需要把这些纸改成我们自己那个注册的签名名称模板扣的,还有你这个验证码,包括你的手机号,然后最终这个接口我们就完成了,这就关于验证码发送接口的这么一个开发。
我来说两句