00:00
然后第三步我们要做什么呢?咱们就是拿着咱们第二步得到的这两个值,就是a set token和op派D,我们就是再去请求一个微信提供的固定的地址啊,再使用地址,然后请用这个地址才可以获取到你那个扫码人的信息,这是第三步,那我们来做一下啊,首先这个地址因为它是固定的嘛,所以我到这个课件中,我把地址就直接复制的。就是里边的这个地址啊,是一个固定地址,那我把这地址咱就给它复制到我们这里边来,然后咱看下这个地址啊,里边的名字叫SNSU侧info,就是用户信息嘛,里边两个值,一个是token,一个是open派D,然后咱项里边还是拼接上这两个参数。把两参数拼进去,那我们就还是写这个string点。
01:00
然后里边多个参数,第一个参数是你那个带百分号S这个地址,这咱们复制过来,然后第二个参数是就是咱们这个百分号S。下token,咱已经获取到了,把这个拿过来,然后下一个就是open ID,就是微信的唯一标识,这样的话把它传递,最终返回一个地址,比如说地址,我起个名字就叫user info。Ul。这个啊,我们就得到了啊,把这地址做了拼接,然后拼接地址之后,咱们还是用刚才那个HTP可烂的方式发送请求,然后得到我们的结果,那我们还是发送啊。发送请求还是写刚才在什么http collect,注意别选错包是咱们自己这个at硅谷中的collect client里边写这个get方法,在get中把这地址给他传进去,最终它返回的就是我们那个用户信息。比如我就叫。
02:03
右侧音这个啊,我们就得到了,然后得到之后把信息我们做个输出。就是里边这个user info。这个啊,咱给它输出一下,然后它输出返回的肯定还是一个那个Jason的字符串,然后咱一会儿也是用那个歌把那值取到啊,咱先输出现在值是能不能得到,如果能得到,咱再往下把那值给它取出来啊,就咱们一步步往下做,现在啊第三步应该是初步做到了,那咱们来测试一下啊。我把服务器重新启动,然后咱就看一下我们扫码之后,这三步都完成之后,他这个扫码的信息咱最终能不能得到啊,最后我们来测试。最终咱再取值,再加到数据库。咱先启动啊。嗯。啊,现在啊,服务器启动了,一会儿再输出,然后来到页面中,先找到我们那个二维码那个界面就是这个界面。
03:03
然后打开之后,现在我做一个扫码,扫码之后咱们看控制台的输出啊,这里边咱直接找控制台大家看啊,在控制台里边现在输出的信息啊,这是我那个微信信息,那我们来把它复制过来啊,咱看一下啊,这是刚才那个token那部分,然后现在是用户信息部分。那信息部分我们往下截一下啊,咱们来看一下里边一些值。就是这些值。我们往下弄一下啊。主要应该就是这些值啊,下边还有啊这些啊。然后咱们看一下这个数据啊,这个数据呢,就是微信扫码人的信息,就是谁扫的二维码,那咱可以得到,比如刚才是我扫的来看里边值open ID,就是我这个微信ID,然后这是微信昵称,这是性别啊,性别一代表男,但这个女是一,零还是二,这个我没测试过啊,如果你是你可以试一下啊,这个我没试过是零还是二,但是它不是零,就是二,一是男,然后下面有这个国家,包括这个语言等等啊,这在你注册的时候填它就有,没有的话可能为空。
04:15
这些不是很重要,然后除了它之外,里边还有一个值,这个值。这是什么呢?就是微信那个头像,就是微信头像是这个路径,包括还有瞎指啊,当是咱家一般主要用到应该就是op ID,昵称性别或者说头像啊,或者你加个城市等等,但是一般城市注册中度为空,对咱取的大部分都是昵称ID和头像这个啊我们就得到了,然后在头像中,这里边有一个小问题啊,大家看它的路径中,它返回路径中这个结构中,你发现啊,HTP后面是不是应该加两个。这个斜杠啊,就是这个方向的斜杠。我们看到啊,但是现在呢,它里边给我们多了一个转移啊,所以这个稍微会有点问题,就是你直接访问这个的时候呢,它应该返不到,但是咱一会儿存数据库,这个值会去掉啊,这个各位先知道,一会咱们会加到数据库,所以现在通过这个过程,咱发现微信扫码人的信息我们应该都得到了,包括ID,包括昵称,包括头像都有了啊,这个可以得到。
05:21
然后得到之后,咱下面还是从字符串中把值取出来,然后加到数据库,那咱取一下啊。角D位置。获取返回的这个user info字符串中那个用户的信息,或者说扫码人的信息。然后获取方式就是咱刚才写这种方式,咱们把字符串先变成一个map集合,然后从map中把这个值根据K取出来,啊,那我们来变一下啊,咱就写一个叫歌son,因刚才已经new过了,加个from Jason里边传入这么一个字符串,然后它要变成一个map集合,就是哈希map.class。
06:06
最终返回的是一个外部集合,我把名字咱给他换个名字啊。比如我叫user info map,这样的话变成了map,然后变成map之后咱根据里边的key把值取到,就加上一个get。区里面的值,比如现在我就取这两个主要的一个昵称。一个头像啊,咱取一下啊,第一个是nickname,就是这个昵称。我写个string,这个Nina。等于这个值啊,这个位置需要做一个强转好吧,这个。转换一下啊,这是第一个,然后第二个还有它那个头像,头像我就直接复制来给它取一下,就是这个值。Head URL。拿过来啊,所以这样的话,咱现在就把这个微信扫码人的信息,我们就得到了一个昵称,一个头像啊,当然还有其他指啊,咱们这两个它里边主要的值。
07:06
写个注释啊,这是头像,这个是昵称。然后都得到之后呢,咱最后大家注意我们的流程啊,因为咱现在做的是微信扫码登录,而我扫码之后咱肯定要登录,但是咱微信扫码的方便地方是什么的,用户不需要注册,咱可以帮他进行注册,比如我们实现这个逻辑,当他以扫码之后,咱把信息就给他加到咱的数据库,让他自动做个注册啊,咱把这个做一下。我写一下啊,就是现在我们把这个扫码人信息添加到我们的。数据库里边去啊,咱这么来做,但是加数据库大家注意啊,这里边特点就是再看数据库中这个字段。我们找到啊,之前的这个表里边我们是手动注册加的,现在我们加的是扫码人信息,那加的话,这里边我们要加这么几个值,大家看啊,第一个值这个。
08:02
Open ID就是你的微信ID,然后还有一个是你这个昵称,另外一个就是这个头像啊,咱们把这几个值给它加上,就是加这个微信的。Open ID,包括昵称,包括头像,把这些我们给他加到数据库中。但是这加的话呢,有这么一个特点啊,各位注意啊,假如说我现在啊,第一次扫码,那第一次扫码数据是不是你要加进去啊,当我第二次再扫码之后,这些数据是不是不需要再加了,因为他是不是已经加过了,所以咱们加之前主要做过判断呀,就判断里边有没有相同的微信信息,如果有的话咱就不再添加,没有的话再做添加啊,所以咱们这些都给他进一步完善。那我来写一下啊,这个过程。就是首先咱先判断我们的数据库。表里边是否存在相同的那个微信的那个信息,如果它存在咱就不添加,如果它里边不存在,那我们再进行添加,因为咱们不相同添加相同数据,相同的有的话就不加,那怎么判断,咱来看一下啊。
09:13
大家看表里边。各位可以看到,你说咱们现在根据什么判断微信是否重复?刚才我提到过啊,昵称是不能判断,因为这个昵称是不是可以重复,但是咱们的open ID是不是肯定是唯一的,每个人的微信ID都不同,所以咱现在就根据open ID判断,看表里边有没有相同微信信息就可以做到啊,根据这个来实现。然后写一下啊,就是根据open ID做判断,咱其实也就是查数据库,看表中有没有数据可以了,那咱来给他查一下啊。这里边啊,因为咱们要查询嘛,最后把那个service给它注进来。加一个o to,然后private啊,咱这个里边我看这three的名字啊。
10:03
Service在这里应该叫u center member service把这个注进来,因为咱们要查数据库,然后注之后我们就是调这个service中的方法,把这个我们做个实现。啊,那咱来调一下啊,写到这个位置。根据open ID做查询,那这个位置我们写个方法,比如叫这个get。Open ID啊,然后这个member啊,就是咱们所写的方法里边,就传入咱刚才得到这个open ID,就这个值上面就得到了。把它传过来,然后得到之后,我让这个方法,咱就返回这么一个,呃,U center member对象吧,啊,返回一个对象。比如我叫member。这个啊,是咱们写的这么一个判断这方法,咱一会写啊,然后这个写完之后,咱下面需要做一个判断,我加上一个if,也就是在里边,如果说这返回到member对象,它等于空,就是它查出来数据,那表示表里边就没有相同的,咱做添加,如果这个值它不等于空,表示表中有数据,那咱们就不需要添加,主要就这过程啊,就是判断里边有没有数据,然后咱们加还是不加。
11:19
那我写一下啊,就是如果说他member。是空。啊是这个空,那表示表里边就没有相同的微信的数据,那咱们就进行这么一个添加,那我们给他就加一下啊,把这些写完再写那service啊,那我就直接上这么一个member。啊,因为它是空嘛,这咱就new一个member。啊,应该叫u center member,把这个溜一下,然后new完之后呢,向member里边来设置它那些值给它放进去,那我们来设置啊,咱们看啊第一个值就设置它这个open ID这个放进去啊open ID。
12:03
然后第二个值。Member。点site里边这个,比如我们设置一个叫nickname,刚才咱也获取到了啊,就是它这个昵称,然后第三个值member。点set,还有一个叫a water头像,就这个he image ul,把这个咱也给它设进去,现在我们设置了几个值,然后都设之后,最后咱调方法给它,最终做个添加,调这个member service里边的添加方法应该叫这个啊,不是ins色的,叫save,然后把这个member对象给它加进去就可以了啊,这样的话咱把这部分就做到了啊,然后做到之后咱再写这个词类中的方法,根据ID看里边有没有相同这个微信数据。把这个方法进行完成。写到这个位置啊,咱快速写一下。这应该不复杂,就是一个简单查询。这是service的interface接口,然后咱们找到它的实现类,在实现类中把这个方法我们快速写下,根据open ID。
13:11
做个查询。这个啊,那咱们写一下啊,因为他要查询嘛,所以咱们肯定是有这么一个对象,叫这个query rapper里边加一个u center member。然后是一个rapper等于上一个。快跑。New完之后,Rapper里边设置它那个条件,条件就是根据open ID查询。那张表里边复制一下这个字段啊,省的写错,复制一下后排D。这个拿回来它的值就是open ID,然后设置之后咱就调用方法,调这个base map里边的查询就是select,因为它不能重复嘛,用这个one就可以了,传一个rapper。最终返回的是我们这个对象,咱们把对象给它re return就可以了啊,这是我们写的这么一个,根据open派D它的方法返回对象,然后这个对象在这里边我们做了判断,如果说它等于空,那咱们就把数据加到数据库与表中没有相同的,如果它不等于空,那表示有相同的,咱就不需要添加,所以这样的话,这个过程我们就完成了啊,就完成了这么一个。
14:25
添加操作,然后都做完之后,大家注意啊,咱最后要干什么呢?就是最后一步。要做什么?你注意啊,当我扫码之后,最终咱是不是要回到我们的首页面中啊,在这位是不是要显示出你的那个扫码人的信息,包括昵称是包括头像,就是最后咱要回到这个页面。那怎么回到就用一种最简单方式,就这个写法。咱刚才都写过了啊,那我们就直接退。就是返回我们的首页面啊,Return,然后re local house3000这样的话就回到我们的首页面中啊,主要这个过程,比如说这里边如果有异常,那我给他直接就。
15:09
抛异常了啊,只要一个鼓励exception。啊,直接这么一个鼓励exception,然后在里边,比如我们写一个数据,比如20001啊,包括写一个就这个什么登录失败。这样的话,咱现在把这个方法我们就初步做到了啊,就是这么一个基本过程,就是现在这过程中,咱们就可以得到扫码人的信息,这个啊我们就完成了。所以大家把这流程要给它知道,也就是按照我刚才这个三步操作,把这功能做到,第一步得到code的值,第二步拿着code请求地址得到token和ID,第三步拿着set token open ID再去请求地址,最终得到四号人的信息,就是咱们最终这个昵称和头像,然后得到之后,最后把数据加到数据库啊,包括再回到我们的手机面中。
16:03
这个啊,咱就写完了啊,这是一个最终获取这个过程。
我来说两句