00:01
各位大家好,下面我们继续来开发微信接口,刚才咱们通过代码的编写已经实现了获取扫码人的信息,也就是我们到了这一步,得到了扫码人的微信的昵称,包括头像,那咱下面呢,就可以把我们获取这个扫码人的信息是不是可以添加到咱的数据库里面去啊,那下面我们就来做添加。首先我们先溜上一个。User info。然后向user info中设置它的值,第一个值就是这个nickname,咱直接传入我刚才取到的微信的昵称,然后里边的第二个值,这里边应该有这么一个叫open ID,咱把open ID给它也放进去,另外在里边除了这个之外,咱们看一下,因info中这里边呢,应该没有图像,它有一个状态,状态呢我们就写成一让它是一个正常状态,那我写一下。
01:10
User info。点sets等于一,然后写完之后咱们就可以调用service中的方法,把它最终调到数据库中,那service我把它先入进来。我们叫这个user info。Service。咱们调用user info service里边这个方法自我添加,我们来调一下啊,里边有一个SE方法,然后咱们传入右侧音符,这样的话就完成这么一个添加,所以咱把这个基础代码应该就完成了,然后完成之后呢,最后咱可能要给他发一些信息,跟咱们之前的手机登录类似,之前手机登录过程中,咱是不是返回了我们这个名称,包括那个就是token,比如用这的LT这token,所以现在咱们用同样的方式做返回,那我写一下啊,就是最终返回name,还有这个。
02:15
Token的手串。那返回的话呢,咱们还是建这么一个map集合,跟之前一样,然后我们写个map等于U上一个。哈,Map,像map中设置它的值,当然这个值可能为空,所以咱们也是做这些判断,那这个代码给各位我就复制过来了,跟之前写那个手机登录基本上是一样的,我把它拿过来,然后给大家详细解释一下啊,应该很简单,首先你看啊,第一部分咱们先通过右侧音缝得到里边的内值,然后下一步如果说内值等于空,那怎么做,咱就把里面这个我先引入依赖啊,然后咱就把这个ni和内嘴内值。
03:05
然后如果说这内幕值还等于空,那咱把手机号对内目值最终放到外中去,跟之前流程一模一样,然后除了这个之外,最后咱通过JWT的工具类生成这个token,根据ID和name生成放到web中。这是我们的做法,然后在中间的这个地方呢,我还做了一个判断,那这个判断什么意思呢?大家看我的写法啊,我就判断一下我们这个user info中是否有这个。手机号如果说。这里边它的值等于空啊,就是如果说手机号为空,那咱就给它返回这个。Open ID,然后里边如果说手机号不为空,咱就返回这个open ID值是这个就是。
04:01
空的一个字串,我们做按这个处理,而这个处理我写什么目的呢?给大家说一下啊,因为咱后面要做功能,当我微信扫码之后,咱是不是要给他绑定个手机号,所以就这么判断,如果说你这里边微信扫完之后没有绑定手机号,这值是不是等于空了,等于空的话,单方ID给它返回用这个判断,如果手机号已经绑定了NID等于空,那就表示已经绑定了,就不需要再绑定,所以我们就是这么来判断,通过opd判断,如ID不等于空,咱们绑定手机号,如果等于空,那我就不需要绑定,我想这个位置啊,就是咱们最后会在前端做个判断。如果OID给空,那我们就需要给他绑定手机号。如果说open ID,它这个值就是啊这里啊应该写作open ID,它不为空,那我们就绑定手机号,如果open ID。
05:07
为空,那我们就不需要再去绑定手机号,用这个咱们来做一个判断。也是里边这是我们的一个基本做法啊,大家知道这个特点啊,当然你可以用别的方式判断,我只通过这个值判断它不为空,我们就绑定它等于空就不绑定,然后最后一步就是咱之前说那个使用JWT生成一个token的字符串。所以这样的话,这部分我们就完成了,然后完成之后呢,大家看代码中啊,其实还有一个小问题,就是这个问题。你看啊,我这个代码中呢,比如说咱一会儿测试,如果说我第一次执行肯定没有问题,但是第二次会有一个严重问题是问题呢,因为咱们第一次呢,数据库中肯定没有数据,你把数据能加里面去,但是第二次我们再加的话,是不是可以再加相同数据啊,而我数据肯定不能相同,所以咱们在做这个添加的时候,我们需要给他做个判断,怎么判断呢?当你数据库中已经存在了相同的微信信息,咱就不需要往里加,如果里边没有存在,咱再往里加,所以这过程中咱要做个判断。
06:25
那判断怎么做呢?大家看一下啊,或者说咱们怎么判断微信是否添加进去呢。有同学可能会想,我根据昵称能不能判断,大家可以考虑一下啊,我微信昵称是不是能重复,但是微信什么是唯一的?是open ID,所以咱就可以根据open ID判断,如果这个值在数据库中能查到,那表示已经存在了,咱是不是就不需要得到这个信息啊,直接往下搜就可以了,如果他得不到,那我们再得到信息再往里加,所以咱们把判断写到这个第三步上边,我写一下啊,就是判断数据库中是否已经存在了微信的这个。
07:11
扫码人的信息。我们的做法就是根据。Open ID做判断,那这里边给大家写一下啊。我们就调用这个。User info service里面这个方法,比如我叫这个。这个微信info根据open ID里边传入这个open ID,然后最终呢,咱们让他就返回这么一个对象了,或者一返一个true false都可以啊,比如让他我就返回这么一个对象了。那比如说咱就反一个,我们叫这个user info一个this。是否存在,就是里边的这比过程啊。
08:04
那我们把这个方法呢,在service中给它实现一下,根据open ID来进行这么一个判断,咱在service中先创建这个方法,我们来创建出来,创建之后来到它的实现类中,实现里边的最终的这个方法。那我们来写一下啊,这个方法呢,首先我们是根据open ID做一个判断,其实就是一个查询嘛,所以咱们先上一个叫query。Rapper。里边传入这个。User info,我们叫query rapper,等于new上一个query rapper,然后咱们向里边来传这个条件,我加个EQ,它的名字又叫做O派D。然后它的值就是这个opd,这是一个条件,条件写完之后咱们调用base map中这个查询方法,我们用这个在Y就可以了,因为它不能重复嘛,只有一条记录里边传入快rap,最终返回咱这对象,然后咱把这个对象user in for做一个re。
09:18
就可以了,所以这样的话呢,把这方法我们就快速解出来了,然后写完之后来到咱的CTRL中,在CTRL中里面有个对象啊,比如说我就叫U说音了啊,然后这个对象呢,咱下面给它做一个就是判断,然后写一下啊,就是来个if。如果说我们通过OID查出的user in对象等于空,等于空的话呢,就表示数据库里边是不是不存在你这个微信的信息啊,如果不存在的话,那我们就调用接口得到,最终把信息加到咱的数据库中,如果这个值它不等于空,那表示里边有,咱是不是就不需要往里加,直接往下操作就可以了。
10:07
然后这里边啊,因为它叫u in for,所以下面等于空,我就直接new这个in in for是不是就可以了,所以这样的话,这里边我们就完成了这么一个判断,把这个我们就做到了。所以大家注理过程啊。然后最终咱们返回name和这个token字母串,这些都返之后呢,最终咱是不是肯定要跳转到我这个前端的某个页面中去啊,就是具体跳转到的应该就是我们里边的这个页面中去,但是这页面怎么跳转的多种跳转方式啊,但是因为咱们目前这里边一个问题就是什么呢?我是不是一个弹出框这种方式啊,所以这个要稍微麻烦一点点,那怎么做,我这里边给大家提供了一种解决方案,然后把这方案给大家拿过来,咱看一下啊,我这个方案到底是什么意思。
11:02
我把这个代码给各位先输过来。这里边啊,比如说我先这个瑞吞,如果有异常,那我就蕊吞一个那。然后给大家说一下我目前的这个解决方案,然后目前方案是怎么样的呢?大家首先看代码这个特点啊,啊应该是这个微信啊,代码特点在代码中我们的做法就是。我把这个类啊给它写一下啊,应该叫这个。微信pro us,然后大家看在代码中我们写一个re returnrect,是不是叫重定项,当咱操作之后就重定向到后面的地址中去,然后后面地址咱们看一下啊,首先我们调调用这个工具类中的。这个常量,这个常量中取到就是local house 3000是咱们前端地址。
12:02
然后前段中呢,让他去访问咱们的这个页面,就是微信扣back,但是微信扣back需要咱们一会儿在里边做个创业,就是在配置里边我们建文件夹,然后里边写一个扣back.voe什么意思呢?大家注意啊,举个简单例子,比如我现在啊,我想去访问这个配置里边这个index页面,那我怎么写呢?在里边我就直接写上这个叫index。它就能直接跳转过来,但是比如说我现在写的是这个叫。微信call back,所以咱们需要在这个PA里边建个微信文件夹,然后再建个call back.voe的这么一个页面,最终它就能跳转过来,所以这是一个跳转的规则,它会找配中的页面,然后在规则后面大家看啊,我就把里边这个ton。然后包括这个op PID,包括里边的气压值给它都传过来,就把值给它,最终都传到这页面中,在那页面中能取到里边的这么几个值。
13:12
这个是我们目前的这么一个基本做法,所以大家先知道这么一个特点,也就是说咱们在微信扫码之后,会去访问到你这个前端中的这个页面,然后咱通过这个页面再跳转回到我们这里边,应该会更加方便啊,当然你可能有其他方式,就是这种方式更加的直接一点,所以这是我们的解决方案,去页面里边去取值,最终通过我的页面再去找到你的弹出层里面的这个内容。所以咱们现在把这个我们就写出来了。写出来之后呢,我们来看啊,这里边出现了一个小错误啊,咱们看什么错误啊,我把这个给他拿到下面来,然后咱们看里面报错了,那我们看什么问题啊,比如现在这里边取的是我们这个name值,那我把这代码我重新写一下啊,咱看里边什么问题,我们调这个已扣的,已扣的里边大家看到是不是传两个参数,它的第一个参数就是取到我们里边那个。
14:13
内的这个值,然后第二个参数应该是里边一个编码方式,我们叫U条杠八,用这个得到,然后咱们再来看,这是不是就解决了啊,所以这是一个小问题,所以现在我们就完成这么一个。接口编写,也就是扫码之后,我们要得到扫码人信息,然后得到之后,最终把信息调到数据库,并且跳转回到我们的页面中去,写一下,跳转到前端的页面中去,而跳转过程中咱通过re重项过去,因为咱们在这个CTRL上面加了这么一个注解,就这个CTRL注解它里边做跳转,而咱不是写那个risk risk表示法律内容,但是为了这么写更加方便。
15:02
所以这样的话,这个过程我们就完成了接口编写,然后接口编写完成之后呢,咱下面做的肯定是整个前端,在前端中按照我们刚才说的这个规则,咱把页面创建,然后在页面中把里面这几个值的得到,然后最终再跳转到咱这个弹出层里边做一个手机号的绑定,这个咱们一会儿来整合前端,目前的接口应该就已经开发完成了。
我来说两句