00:01
各位大家好,刚才呢,我们给大家介绍了微信扫码之后的执行流程,我们在接口中创建了扫码之后的回调方法,在方法中能得到传回来的code的值,还有这个Z值,那咱们下面给大家介绍一下在我们代码中如何实现获取扫码人的信息。给各位做分析,这个过程呢,在微信的官方中有张图,就是这张图,这张图中呢,清晰的告诉我们这个代码该怎么进行实现,那我下面给各位先做个说明,然后咱们来编写这个代码。这里边来说一下,然后这过程怎么做呢?刚才咱们提到当微信扫码之后呢,他会给我们返回有这么两个值,主要是第一个值就这个扣,所以第一步呢,我们做法就是给大家写一下我们这里边。获取。扫码人信息的过程。
01:02
在过程中的第一步。我们做什么呢?先获取回调,返回到code的值,这code的值是什么呢?咱们看这张图上告诉我们,这个值呢,是第三方应用或者承销商,第三方带上,这个叫临时票据,这是由微信那边给咱返回的生成的一个字符串。而临时票据怎么理解呢?我们就可以这么理解啊,好比说咱们发送一个手机的验证码,验证码在一段时间内有效。而code就是一个叫临时票据,所以这是我们的第一步,先得到这个内容,然后这个得到之后,下面我们进入到第二步,第二步做什么呢?给各位来说一下啊,我们的第二步操作就是咱们拿着这个获取到临时票据或者这个扣的值去请求微信提供的这么一个地址,就是这个地址啊,是由微信提供的,然后请求地址之后呢,得到这个地址返回到。
02:09
两个值。哪两个值呢?大家看图上啊,就这两个值,一个值我们叫这个。就是access token还有一个值,它叫做open ID,我们需要做这两个事情,那我写一下,一个叫access。还有一个叫open ID,当然这过程中呢,除了code值,还需要咱们微信进行扫码法登录那个ID和密钥,那这两只是什么呢?给各位说一下,咱先说这个open ID open ID啊,就是你微信那个唯一的标识,比如说咱们一个表中有ID值跟那个类似,因为每个人微信都不一样,他怎么区分,用open ID区分?而token好比说你一个访问的凭证,所以这是我们的第二步,根据code,包括微信的ID密钥去请求微信的地址,然后得到a set token,还有这个ID。
03:11
第二步我们就是这么来做,然后这步做到之后,下面我们进入到里边的第三步,第三步怎么实现呢?给大家画一下。第三步的做法就是跟第二步类似,写到这里啊,第三步。我们拿着第二步得到的这个access token。就是as token。和这个OID,我们再去请求微信提供的一个地址,这地址是固定的,由微信提供出来的,然后通过请求这个地址返回,有这么一个信息,这个信息呢,就是咱们最终要得到那个扫码人的信息,也就是里边的这一步。
04:01
返回,拿着他open ID,最终来返回那个扫码人的信息,这些信息中比如说包含他的昵称,包含他的头像,包含他的其他的一些信息。所以这个过程呢,就是咱们怎么得到扫码人信息过程,也就这张图上把这个过程,所以咱们一会儿写代码,按照流程做到,然后这些信息都得到之后,最后咱们把数据是不是最终再加到数据库中,当然扫码之后呢,我们还要去绑定手机号,然后把你的手机号,包括微信的昵称,Open ID等信息最终加到数据库,完成咱们的扫码登录。这个是我们提到的啊,然后这里写一下,就是里边的最后一步,咱们再去绑定这个。手机号,然后把手机号和微信扫码人的信息最终添加到数据库中。然后通过这些过程,我们这个微信扫码登录可以说就最终完成了,所以这是对于这个过程的一个基本分析,大家把这些知道啊,而这过程中呢,我们要用到的技术有什么呢?其实主要用到的就是一个技术也技术是什么呢?给大家写一下啊,它叫做HTP。
05:22
那这个技术什么意思呢?来做个介绍啊,大家注意啊,我这里都有一个操作叫做请求微信提供的地址,而请求地址呢,咱之前做法在浏览器中输入地址以回车,是不是能请求了,但是目前过程我们要在程序中做到,而不是直接用浏览器请求,所以在用这个技术,这个技术你可以简单理解为什么意思呢?咱们现在不需要浏览器就可以帮我们请求地址,然后得到这个地址返回的数据,或者说请求接口,得到接口返回数据,这就叫ACCLA,就是模拟浏览器请求和讲的过程,所以咱们现在主要的技术就这个技术,然后除了这个技术之外,里边还有一个技术,就是咱们A森的一个转换。
06:09
因为反应数据是一个复杂结构,咱通过这层转换用到这个数据会更加方便,那这个对于它的一个基本说明,大家也知道。然后这个说完之后,咱们下面往下来做,首先呢,我这里边在课件中给大家提供了一个HTP,可一个工具类,在工具类中呢,给大家写好了一些相关的操作方法,比如说咱用get提交,用post提交,所以第一步呢,我们先把工具类先创建出来,然后再进行下操作。那我来创建啊,首先我在这里边的U中的创建这个工具类,我给工具类起个名字就叫做HTP。把这个创建,然后创建之后呢,我把课件中的这段代码就直接复制过来,咱们复制到我这个代码中来,这样的话呢,我们就完成了这么一个工具类的引入,一会儿咱用它进行操作,但是引入之后呢,大家发现这里边是不是很多错误啊,因为咱们现在需要引入它一些相关的依赖。
07:23
但是依赖这里边我们给它用一下啊,然后这个依赖要引入的话呢,咱需要引入这么一个,就是微问的一个依赖,这依赖我在这里边给大家提供出来了,我们来看一下啊,就是里边的。这个依赖。我们叫做dependence,然后阿尔法其中的htp client,那把这依赖我们给它不到我们项目的破物件中,但为了这个更加通用,我又给它放到我们的po里边啊,在里边放入这个。Htp client把它先复制过来,然后复制之后我们再引入相关的依赖,咱们先等它加载完成。
08:05
然后加载完成之后,在里边我们再给它引进来,就是它相关的内容啊,等它加载完成啊,得稍等一会儿。然后这个影之后呢,咱后面再去请求微信的地址中,用这里边我们封装好的方法,比如大家可以看一下里边有一个get,包括有这个POS是不是对应的方法,用它我们再进行相关的操作。好,那这个啊,应该是已经加载出来了,我们来引入一下啊。我们用的是阿尔法其中的FP client啊,用这里面的相关的类和接口。然后这些都给它引入进来。就是里边的这些内容啊。我们给它做一个引入。阿尔法其中的这个修改内容。
09:02
一个一个给它引进来就可以了,或者你用那个自动导包也可以啊,但是自动导包呢,有时候可能会导错,因为有很多相同名字,所以咱们这里边我们给他一个给他都拿进来。就是这些相关的内容。现在这些依赖都引入完成了,所以咱们把工具类就完成引入,然后工具类引入之后呢,下面咱就开始正式写这个相关的接口部分了,那按照我刚才的步骤,我们来开始做这个开发,咱们来到我们的接口中,首先第一部分按我的步骤我写一下啊。第一步我们先获取到我们这个叫临时票据。也就是里边这个扣的值,目前这个值在里边咱是否可以得到啊,包括这里边,比如我做个输出,为了后面我们测试方便。我们这个叫扣。然后这个直角扣等,所以这是我们的第一步,然后第一步做到之后,我们的第二步操作怎么做呢?咱们就拿着这个扣和你微信那个登录的ID和密钥去请求微信那边提供一个固定地址,然后通过地址得到两个范围值,刚才提到一个值叫a set to OK,一个叫open ID,也就说第二步咱需要请求一个地址。
10:32
那这地址是什么呢?给各位来说一下啊,首先我把这段代码给大家先复制过来,然后来说明一下这个代码什么意思,因为比较固定,我就不再敲一遍了啊,很简单,大家看啊,这个代码中的这一部分就是我们要请求到微信中的固定地址,你看地址名字,API,点微信,点qq.com,然后我才偷开,然后在地址后面呢,咱需要给他拼接上一些相关的参数。
11:01
那这参数怎么拼接呢?给各位说明,首先第一种方式呢,你可以直接进行拼接,就是用这个问号加上你的名称,比如说A等于一,然后按照符号,比如说B等于二,咱们可以这么拼接是可以的,但是这么拼接呢并不是很好,另外也很不方便,你需要做很多的字符串连接,所以我们进行字符串拼接中还有一种方式,大家看我写的这种方式。也是咱们比较常见的啊,首先第一个我在里边写了一个就是buff,然后里边有个判,加上你的这个相关的拼接的内容,在内容中有一个部分叫百分号S,这大家应该看到。百分号S什么意思呢?它就好比说咱们写SCO语句的时候,是不是写过一个问号啊,我们是不是叫占位符,好比说现在它就是一个占位符。占位符是什么意思呢?表示这里边的需要传递参数,所以这是第一部分,我们用板块S代我占位符里边需要传参数,然后第二部分咱们用string.format可以向这里边来设置我们这个百分号S中的相关的这些内容,而这内容大家看啊,这里边我就写上了。
12:21
这么一个类啊,咱们把类先给他补充完整。这个我先写完啊。然后大家看,首先第一部分就是我们这个带比方说S的这么一个字,Buff to string字母串,然后里边按照顺序,第一个就是ID,第二个是密钥,第三个是不扣的向里边是它的值,而这个代码执行之后,里边这个a set ton ul中就有咱们的地址和里边拼接好的参数,所以这也是一种拼接参数的方式,各位把律知道。百分号S这位符string.form向里边设置值。
13:02
然后做到之后呢,下面咱就使用HTTP。去请求。我们的这个地址,那我们来请求一下啊,我写一下我们用这个工具类,HTTPU艇,刚才我写的工具类,然后里边有个方法,这方法叫做get方法,Get中呢,加上你请求这个路径或这个地址,我们叫set ton ul,这样的话就完成请求,然后钙的方法你看啊,带公计类中已经写过了,咱直接传地址可以了。或者说你用POS提交。里边也可以传它的参数,这是一个工具类,大家可以直接使用,然后在这个请求过程中有异常,我把异常做一个拆开,咱可以套捕获一下,这样的话就完成了请求,然后完成之后呢,最终会返回一个字符串,这字符串就是由这个微信的地址给咱们返回的这么一个信息,那我给它起个名字,比如我叫这个就是。
14:10
Size。Ton这么一个in啊,由他把信息做返回,所以这就是我们写的里边的第一问内容。咱们把它就做到了,然后做到之后呢,咱通过这个字符串,从里边把它的值可以给它取出来,然后再进行我们的基本操作,所以目前我们先写到这里,这里边为了明显,我把这个值我们做个输出。Size token。然后里边是这个值,咱们下面呢,把这过程先做个测试,就看一下这个过程输出是什么值,然后这个值里边有没有咱们要的这两个值,如果有的话,咱们做操作,再去请求另外的地址,最终做后面那种,所以咱们目前先把这一步先完成了,也就是我刚才给大家分析过程中的第一步和第二步中的一部分,我们应该已经做到了。
我来说两句