00:00
好,接下来也是咱们这个课程的重点,就是去了解微信公众号怎么去开发的,来看一下啊,咱们呢,现在要去开发的话呢,我们就得在这里看一下,在目前咱们这个接口权限呢,我们前面看过一下,我们发现呢,它这里面有很多接口啊,我是不是用不了啊,很多接口都用不了,那这样的话呢,让我对于我这个个人开发者的话呢,非常不友好,我呢想去测试一下,他其他接口的话都发都发现呢,是用不了的情况,是不是,诶所以说呢,我们呢,就不在这个平台上,不在这个页面上开发啊微信公众号考虑到啊,有很多个人开发者,他是没有企业企业资格认证的,所以说呢,他提供了一个测试号接口来够提供给我们个人开发者使用,那个人开发者呢,如果你在测试号接口上去开发,首先开发模式跟我们正常开发是一模一样的,开发模式是一样的,只不过他测试号接口的话呢,这个东西呢,呃。
01:00
它的接口权限呢,更加多一些,他呢提供的基本上全部的权限能够给你使用,所以说呢,我们就在那个测试号接口上去开发,那现在问题是怎么去进入到那个地方呢,是不是来看啊,首先呢,我们打开开发者工具。开发者工具呢,这里有六个工具,是不是这以上呢,就是一些可能我微信开发的时候需要使用的东西,第一个是开发者文档是不是啊,也就是说你微信开发的话呢,你最好是一定要去看一看这个开发者文档,这里面呢,介绍我开发到底怎么开发的是不是,还有在线接口调试工具是不是就万一啊,因为它得用了很多很多接口,我们说了每个接口呢,其实就是一个ul地址,是不是,当你去使用这个接口的时候,你说白了就是像这个地址发送请求对不对,然后在接收它返回的响应是不是,然后你发送请求呢,就可能会导致有个问题,就是请求会失败,是不是请求可能会失败,那你左调右调你发现都不行,那么这时候呢,你可以在这去调一调。
02:06
啊,在这呢,你把你需要写的参数呢,全部写进去啊,在这里呢,它会告诉你具体是什么原因,如果在这失败的话呢,说明你一定失败了,如果在这成功的话呢,说明你这个接口是没有问题的,那可能是你在发送的某个方式的时候呢有点问题,那在这呢,我会去调试我这接口写的到底有没有问题啊调试然后这一块呢,是个web开发工具,这个工具呢已经下载给大家了,到时候呢,我们用上的时候呢,就直接去安装就可以了,不用在这下载了,在这下载的东西不是最新的啊,而且不好用啊,所以说我帮大家下载了一个最新版本的,然后其他的就是一些公众测试啊,账号啊,什么CDN加速啊,第三方平台等等是不是,那咱们呢,其实主要用上的就是前三个啊。其中呢,最最关键的就是第一个开发者文档了,我们已经把它打开了,这个呢,就是我们刚刚打开的开发者文档,它这里面呢,其实就介绍了我这个微信开发的一些东西的,怎么去开发的,那咱们呢,现在也来到一个就是我们那个测试平台,因为咱们呢,要在那个测试平台上去开发,那测试平台才有我们想要的所谓的功能,是不是来看一下怎么在哪呢,这里是不是要开始开发,点开开始开发这里有个接口测试申请,是不是我们要点开这里,好点开这里呢,它这里说了啊,这里给你介绍一下,他呢某些高级权限呢,你用不了,所以说呢,他为了帮助你快速上手的话呢,在这里提供那个接口测试,你呢,需要在这里点进去这个网址,是不是在这个网址上呢,你要再次登录你的。
03:39
公众号,然后你要再次扫一次码啊,在这里呢,又要扫四码,然后扫完码点击OK时,这时候就来到了你那个测试号平台了啊,这个呢才是测试号平台啊,测试号平台对大家来说的话呢,你们一开始这里是没有东西的啊。你啊,你们这里开始没有的啊,我这里好像不能填空,他这里不让我填空啊。
04:01
然后我写一个星号吧,你们开始呢,这里什么也没有,包括这里也没有,待会大家来看啊,那这些东西呢,就是我们开发的时候要去填写的配置,这些东西没有,而上面这个东西呢,是他默认给你的你这个接口测试号的相关的内容,是不是相关的一些APPID和APP secret啊,这些呢,就是我到时候发送请求的时候要写带上的一些参数参数啊好,然后这里面一些内容再往下走,下面呢,就是你这个关注了你这个测试号二维码的相关的一些用户是不是看,因为它仅仅是测试号而已,你会发现呢,测试号的ID名称呢,和你之前注册的不是一个,他的这个ID名称非常丑,第二呢。他能只能够允许你100个用户进行关注,是不是只能允许100个啊,那这上面有一些内容啊,待会儿大家也可以关注,咱们40个应该可以,是不是好,关注完之后呢,我觉得到时候还得再清理一批啊好,因为最多100个是不是好?在下面呢,他就告诉你,你能够使用的接口权限一共有哪些是不是,哎,在这你就会发现呢,基本上所有的接口呢,我都有。
05:11
权限了啊,在这里就会基本上所有接口都会有权限的,所以都基本上都是无上限的,是不是只有极特殊的呢?它会列举出来你每日能使用的上限次数多少,是不是好,到时候呢,有些东西需要极极特殊的要注意的呢,我到时候再强调啊,那这是这些其中呢,这里有一些要注意的啊,比方这里接收语音识别结果,这里是不是要操作对应的关闭啊,可能它默认是对应的是你看等我确定默认是个这样状态,这个状态的意思是你这个功能呢,它没有开启,是不是你要开启的话呢,要点击一下,是不是点击确定啊才能够开启啊,然后同样的下面有一个获取用户地理位置也是如此的,也是如此的啊,到时候用上了,我们再看后面的是不是都有啊,都会有相应的内容啊好,那在这个测试号接口下面呢,我就能够去使使用这以上提供的所有的接口了,所以说呢,我们通常在这里进行测试开发啊,在这里开发好,然后呢,我们接下来。
06:11
再回过头来这里呢,我发现接口都能用了,那这些东西到底要填写什么呢?是不是,那我们来看啊,那我们今天这一天呢,要填写的东西呢,主要是填写这一块啊,讲这一块呢,我们就要知道一个微信啊,它到底是怎样的一个基本交互流程的啊,首先呢,我们来画个图,画个图来这里呢,有一个图,这里有三块区域啊,我们说一下,首先第一块区域呢,我们叫做是用户的微信客户端,用户的微信客户端还有browse,相当于是这是用户的微信客户端,那这中间这一块呢,是腾讯的啊,腾讯的微信客户端啊,腾讯的微信服务器啊。这是腾讯的是不是TC腾讯的,然后呢,再过来这一块是什么呢?是我们的服务器,开发者的服务器好一共大概是这三块区域,是不是好,那怎么回事呢?我们来看啊,当我用户是不是要去关注订阅号,操作订阅号,甚至发送消息给订阅号啊,是不是当他发送消息的时候呢,我们注意他呢,并不是直接发送到我们开发者服务器这里,他呢是先发到微信服务器去接收,他的默认都是发到微信服务器,然后呢,微信服务器呢,在想办法将用户发送的消息啊,转发到我的开发者服务器上,那开发者服务器是不是我们自己写的,我们自己写服务器接收到用户的数据之后呢,我是不是要处理他发发送过来的消息,然后根据某些消息内容,比如说他,他说的是一,那我们根据关键字是不是要回复相应的内容给他,那么我。
07:55
是不是要回复消息给用户,所以说呢,对应的我呢,开发者服务器呢,它并不是直接回复给用户的,他得回复给微信服务器,再由微信服务器转发你的消息给用户,对应的用户才会显示接收到,所以说呢,我们会发现在我们进行交互这过程中啊,实际上呢,开发者并不能直接跟用户进行交互,是不是它得经过一层微信的服务器,是不是,所以说呢,我们相当于是面向微向服务器进行开发的。
08:27
其实我们根本就接触不到用户的服务,用户的这个客户端是不是根本就接触不到啊?好,那在这个过程中呢,我们需要做什么事呢?首先第一个问题就是微信服务器,他凭什么把消息发送给你这里?他有这么多公众号,没公众号,凭什么这个公众号发送消息就要发送给你开发者服务器呢,是不是,所以说你得想办法告诉微信服务器,你到时候接受,比如说接受我们那个测试号公众号的那个信息,接收到消息的时候呢,你就要把它转发到我们这个开发者服务器来,是不是你要告诉微信服务器才行,对不对,所以要对应的呢,我们在这里就要在这个页面上填写一个我们服务器的。
09:10
地址,只有填写这个地址他才知道啊,我接收到的这个测试号的信息,他才知道将这个信息转发到哪个开发者服务器上,所以说在这里要填写一下,是不是这是一个好填写完成之后呢,我们开发者服务器要做什么事呢?你想我们开发者是不是个服务器啊,我这个服务器是不是所有人都能访问,那么好,咱们写这个服务器呢,其实主要的就是为了我微信进行交互的,是不是就是为了去满足微信的需求的,其他的人发送的需求呢,我照理来说应该是不要接受的,是不是,所以在我我开发者服务器上呢,我要验证一个什么事呢?我要验证这个消息是否来自于微信服务器发送给我的。只有来自微信服务器发送给我的,我才接收处理是不是,如果不是的话呢,我就全部打回去,是不是全部把你过滤掉,全部打回去,我不要你的发送过来的东西是不是,所以说我们呢,待会就得做这件事,所以是啊,第一件事就是我要填写一个服务器地址是不是啊,第二个呢,就是我开发者呢,要去验证是否消息来自于开发者微来自于微信服务器是不是,并且呢。
10:21
我待会是不是要返回响应点微信服务器啊啊,微信也要确认是否这个消息来自于开发者服务器,也就这双方呢都得确认一遍,是不是,那我们待会儿呢,就得做这件事才行啊,做这些事呢,微信服务器才会确认把消息发送给你,好,那第一点我们是不是要去填写这个地址啊,那对于大家来说的话呢,你们先要点这个修改是不是好,第一点是不是要填服务器地址,好,那我们要填写这个地址的话呢,我们是不是先得有一个服务器啊,所以说呢,我们先来写一个基本的服务器啊,我们在桌面上呢,新建一个文件。那这样来,我们来到0524这里有个SVN,咱们还记得这个页面吗?我们在这面是不是之前写过SVN啊好,咱们呢,再来再来一次啊,我们在这里面新建一个WeChat,咱们在这里面去写我们的微信公众号项目。
11:15
在这里面去写啊好,这里面呢,我待会是不是要把它打开啊,打开在里面写。Open,那来到我的web桌面上,桌面上的desk,然后下面的这个0524里面的这个这个文件是不是好打开它,打开它呢,咱们来到咱们的微信公众号开发啊,这些我不需要了,这微信公众号在这里面呢,再新建一个文件啊,新建文件夹叫对零一,咱们的微信公众号开发的第一天,好在这里面呢,我们再写写一个什么呢?写一个我们第一个啊零一叫做。我们叫做验证服务器的有效性啊,验证呢,我们的服务器是否是有效的第一个啊好在这里面呢,我们要写这个逻辑,首先我们先得自己写个服务器,是不是来写写一个呗,我们来写一个,首先第一步我得去下载安装一些内容,是不是好,这样呢,我们待会儿呢,因为我们要写很多很多东西,是不是我就把这些包呢统一放在。
12:20
最外层可以吧,因为我们到时候呢,肯定要安装很多东西,那我们就放在最外层,在最外层呢,我先初始化一个包,初始化一个包是不是好,他呢,有时候会会报个这样错误啊,他会报一个这样错误,就是说白了这个NPM方法是不是出了问题啊,为什么出问题了呢。正常情况下我们是不是可以一个选啊,但是当前呢,它是出问题了,这出问题的原因是什么呢?是因为你这个文件夹的名字是中文,它默认呢,是中文的名字呢,放在这个name上是不是,但是呢,咱们这个name能放中文吗?不能放,所以说会报错,同样的,当你这个名字是非法字符,有什么多余的空格,有什么大写字母,它也会报错的,所以如想如果想不它报不报错的话,是不是要写些小写英文啊才行啊,那咱们也没关系啊,他报错就报错,我点击OK就可以了,尽管他报错呢,它还是会生成一个他给dress文件,但是只是dress文件呢,什么都没有,是不是需要你自己去写,比如说咱们叫做weardt test啊,Weard就是微信的意思啊,好,然后这里的版本是1.0.0是不是好,就写一个基本的这个东西啊,好写完之后呢,咱们是不是要安装一些包,安装什么包呢?我们要写服务器了,要安装express。
13:41
先安装它啊,待会要安装其他的我们再安装,先把它安装一下看看行不行啊,好,那让它转好再转呢,说明没有问题,是不是OK,不用管它了,好接下来在这里面写写第一步写干嘛呢?引入服务器,我要引入我的出模块,好咱们来写,咱们用cost都用E调的语法啊,Cost咱们的。
14:06
等于require,你看现在是不是没有提示啊,没有提示的原因什么呢?Setting没有在我的那个note中去点击某一个按钮,是不是是点这个点这个才有啊,然后呢,我们会发现下面这些呢,就是你全局安装的包是不是会体现在这都体现在这啊体就OK好这时候呢,你在你写require的时候,就会提示是不是体示写express。好,移动串第二步呢,是创建APP应用对象,创建APP应用对象靠一个等于express函数的调用是不是好,接下来中间是不是写业务逻辑好,中间呢,我们就去写验证服务器的有效性的,好,咱们这呢,我们先写一个中间键啊,先写一个中间键,我呢不知道中间写啥,我先写个中间键,再说IQS和ne参数是不是好,谢谢个这函数,然后最后一步呢,我们是要干嘛呢。
15:12
这都空着了啊,先听一个端口号啊好,先听端口号。来APP点方法。然后呢,进行一个端口,比方说是3000是不是,然后呢,我们这里就为了看到我们的结果啊,服务器有没有启动成功,我们打印输出一下这个服务器启动成功了,是不是成功了。好就打开叔叔一句话好,咱们之后呢,就写好了一个基本的一个服务器是不是好,写完之后呢,我们是不是比方说运行一下,运行一下运习一下呢,我这个是不是就会有一个网址能够去访问这个服务器啊,那么好,那咱们能够去这样写呢,我这个网址呢,叫做HTTP冒号斜杠,斜杠local号3000是不是好,那么请问一下这个网址我微信服务器能访问到吗?访问不到是不是,那我需要一个怎样的网址呢?
16:16
我是不是得有一个能够互联网能够外网能够访问的网址啊,咱们给局域网也没用,因为微信服务器它访问不到,是不是,那我们需要有个外网的网址。那在此呢,大家不要去额外去申请什么域名什么的,在此呢,我们通过一个工具能够帮我们做好啊,这个工具呢,它会将我们内网的这个对应端口号省的服务啊,映射成外网的一个网址,能够让我们直接去使用。那这个工具叫做什么呢?叫做nro,这个东西呢,在安装包里面有啊,打开WINDOWS64就是这个东西,就是个yes文件,你们呢,把它放在任意位置都行,然后放,放好之后呢,是个双击运行啊,双击运行,运行之后是不是一个这样样子啊,放到这里面,告诉你example是不是例子啊,然后前面有些介绍我们看了,就是通过这个指令你可以去做这个事。
17:08
来大家怎么做啊,咱们就输个这形叫做ngr OK是不是NGOK,然后空格HCP再空格你对应的本地的端口号,咱们端口号是3000,是不是就写3000回车。回收来看啊,这时候呢,说明这样子是online的状况,绿色的就说明是OK的,OK之后啊来看啊,它前面呢,有一些相关的信息,比如说你的账户是哪个,你的版本号是多少,你的这个服务器地址是美国的,是不是美国的,然后下面呢,有一些相关的内容是不是,那在这里呢,主要看的就这两行啊,他呢将本地的LOCAL3000是不是一生成的一个这网址啊,一个是HTP协议的,一个是HTPS协议的,是不是这两个都能用啊,咱们呢,用HTP协议之后了,就这个网址,这个网址呢,所有人都能访问。
18:00
它能访问呢,就能直接访问到你本地的那个端口号对应的服务器了,所以说呢,我们要将这个地址呢,是不是要放到我的ul上啊,CTRLC啊,放到我的ul上这时候才行啊,就是这个地址,然后呢,这个work呢起来就是像我们那样通过这个指令是不是就能运行了这个指令,好那有时候呢,会出现这样的问题啊,比方说呢,你这个东西不小心退出了,另外呢,比方说我们是不是复制之后按CTRLC复制啊,但是呢,CTRLC它又是一个终止的事情,一旦你不小心按了多一下的话呢,它是不是默认退出了,默认退出之后呢,你就得再次运行这个指令,是不是再运行一次啊,再运行次就可以了,好再一次再运行一次,我们会发现呢,它这个网址啊,你会发现是变了,每次运行这个网址都会发生变化,都会不一样啊,所以说这是它的一个,呃,一个特点啊,每次。
19:00
的运行都会发生变化,所以说呢,一般情况下,比方说我这个work是不是运行了,那么我今天都不关了,都不会关,因为一旦我重新关了再打开,我是不是又得去修改啊,那就很麻烦,所以说一般开了之后就不会关了,直接就使用这个网址是不是CTRLC,然后呢,给TCTRL1这个网址就OK了,网址就OK了啊好通过work呢,它呢一旦运行起来就不能再关了啊,一直要在后台运行着,就把它最小化就行了,好下面是不是还有个token啊,诶这个token呢,就是我们待会需要去使用的一个东西啊,Token呢,它是一个参与加密一个加密串的一个东西啊,参与加密的一个东西,那这个东西呢,你可以随意写所有的内容啊,尽量的是复杂一点比较好,是不是比如说咱们叫做S硅谷HTL0524,是不是加这个啊好这以上呢,是不是咱们的这个接口配置信息,就是这两个参数好写完这两个就是我们这一块,微信这个网页上这一块填写好了。
20:00
接下来呢,就要来到服务器上对应的一些测试了啊好,咱们来看一下整个步骤,我们写了些啥,首先第一步呢,我要去首先啊微信服务器要去验证。要去验证你的开发者服务器的有效性啊,说白了就是微信服务器,要知道。要知道开发者服务器是哪个。是不要知道开发者服务器是哪个啊,所以对应的我们是不是要在这个测试管理页面上填写这个ul地址啊,在测试号测试号管理页面上填写ul服务器地址,开发ul开发者服务器地址,那提写这个地址呢,我们用到了使用n group是不是NK他呢做了一个内网穿透啊内网。
21:03
畅通将你本地的这个端口号对应的这个地址。将本地端口号对应的服务是不是本地端口号开启的服务啊,映射成。外网的一个网址,外网。可以访问的一个网址啊,所以说呢,你可以直接使用这个东西,那这个命令呢,是NHTTB3000,你对应的多少,是不是HTP3000,好,这是我们写的第一步填写的这个UR地址是不是好,接下来呢,我们还填写的一个通,是不是直接在在这个页面上呢,我还填写了个。通ER,通ER呢是参与微信加密的一个东西啊,他呢是参与微信签名加密的一个参数,参与微信签名加密参数,待会呢,微信服务器会发送这个签名给我,而我呢,要去通过某些东西去算出来这个签名,从而对比一下这个签名到底是不是一样的啊,这呢就是我们接下来写的第二步。
22:18
也是我们开发者,服务器开发者。服务器要去做一个事,就是验证消息是否来自于微信,服务器要验证这个消息是否来自于微信服务,我们要做这件事,好来,我们要去验证这个消息来自于微信服务,首先我是不是要接收消息啊啊,这也是我们为什么用app.use的原因,因为app.use它能够接收处理所有的消息,是不是不能接收处理所有消息,所以所有消息是不是都会过来啊,接收处理所有消息啊好,接收处理所有消息呢?如果是微信平台发送过来的消息,他呢都会携带一些参数。
23:08
请是微信服务器啊,提交的参数,我们看一下有什么内容啊,来重启一下我们的服务器册好,这时候呢,我们待会来看一下,待会会发送什么过来,是不是来我这样呢?是不是故意没有点提交没有点啊,当你点击提交的时候呢,微信服务器就会向我们开发者服务器发送消息啊,我们看一下发送什么东西啊,点好可能呢,当然你现在还是没成功啊,所以说会显示配置,配置失败,我们看下有没发过来。还没有再点一次啊,有时候呢,可能会第一次不是没成功,现在也没发送过来,是不是有了,他发送一个这样的东西过来,我们看一下。一个这样的东西,是不是说明这上面是不是有四个参数啊,一个来我们应该看了,这个呢是。
24:07
微信的加密签名。这个呢,就是微信的加密签名,比如这个东西啊,待会就是我们要去推导出来的一个东西,这个加密签名待会我们来看啊,那我们先把这四个参数都来看一下,这里呢叫做str是不是这个是干嘛的呢?这是微信的一个随机字符串。啊,这个东西呢,它会随机生成的,随机生成的啊随机串,那下面这个time time什么呢。微信的发送请求的时间戳是不是have STEM是不是时间戳的意思啊,时间戳的意思,这是代表时间戳啊,然后下面这个now什么呢?微信的随机数字啊啊,这两个呢,对应的都是随机的,每一次呢都会不一样,同样的这个时间窗呢,随着这个时间的不断变化,是不是也不一样啊,这三个呢会不一样啊这个sign到底是干嘛的呢?啊这里呢,就是要去探讨一个要验证消息是否来自于微信服务器,这里面呢,我们就验证三步。
25:16
我们怎样去验证消息是否来自于服务器呢?我们就要去算出来这个cit参数是否是一样的。来,我们怎么去求导这个参数呢?这里就涉及到一个算法啊,微信签名。啊,咱们首先首先来看一下这个算法怎么做啊,其实我们最终是要做一个这样的事,我们的目的是做质样的事啊,目的呢是想要去计算得出这个CI这个签名。微信的加密签名。然后我们自己计算得出这个东西,然后和微信传递过来的signature进行对比啊,如果一样啊,说明消息来自于微信服务器,如果不一样,说明。
26:14
不是微信服务器发的消息,是不是不是微信服务器发送的消息,所以说呢,咱们在本地啊,就得去想办法计算得出这个Co出来,是不是计算得出它来,那现在就是计算得出它来呢,有一个小小的算法啊,就一个简简要的算法,我们看一下这算法呢,大致分为三步,首先第一步将参与微信加密签名的三个参数,哪三个参数呢?一个是这个。一个是no,一个是我们在网页上填写的这个token,是不是他们会将这三个参数呢?我们首先要将这参数呢,组合在一起,组合在一起,组合在一起,然后呢,按照。
27:08
字典序排序。按照字点序排序,诶什么是字点序排序呢?是吧?怎么样的是不是ABCDFG啊,是不是按照这个首字母进行排序的,同样呢,还有数字啊,因为这里面是不是有数字,所以说是零到9A到C啊这样去排序的,它呢会去按照这样的情况呢,将这三个参数是不是进行排序啊,排序之后呢,首先应该是这三个参数呢,先进行按照字典去排序,然后并且组合在一起啊。B、排序之后的并组合在一起。好组合在一起呢,是不是最终会形成一个东西啊,组合一起形成一个数组。好,将这个数组拼接成,将数组里所有参数,其实就是三个参数拼接成一个字符串。
28:12
拼接成一个字符串,然后呢,进行上一加密,进行上一加密,拼接好字符串之后呢,通过上衣是不是进行加密啊,这是第二步啊,然后第三步呢,加密好之后呢,加密完成就生成了一个signature,就是那个signature啊。这个然后呢,和微信发送过来的进行对比,如果一样是不是。如果一样的就是说明我们前面这个规则,如果一样就是是说明消息来自于微信服务器啊,啊来自于微信服务器的话呢,你要返回一个消息给他,你要返回一个e e host,返回这个给微信服务器啊,这时候微信服务器才能知道你这边是没有问题的反馈这个如果不一样是不是。
29:16
物一啊,说明这个消息是不是不是微信服务器发送的,不是微信服务器发送的,这时候呢,就返回一个error就给他们就可以了,是不是错误啊,返馈给歪了回去,好,这就是我们待会啊要去做的一个事情,做的这三步,那么呢,我们接下来呢,就去一个个去把这三步给写完,写完啊好,现在呢,我们是不是需要这个token啊,需要这个token,那么我现在此时此刻,现在这里是不是参数中没有发过来啊,没有发过来它呢在我的网页上是不是,所以说呢,你一定要跟这个Co是一模一样的啊,你千万不要自己去自定义,那我们在外面呢,我们去定一个配置文件,比如说定一个con文件,这con文件呢,就放置着一些相应的参数,比方说我有这个。
30:05
Token是不是放在这啊,Token除了token以外呢,可能还有一些东西要使用的,比方说这个APPID后面呢,我们要使用,我把它都放进来啊,都放进来是不是这个地址啊,好,这些东西呢,你们都给我复制粘贴就好了,不要自己去写啊,然后另外还有一个目的就是。待会大家使用的时候,你要记得你复制的是你自己的东西,你不要把我的文件这个肯定的文件给复制过去了啊,你能用我的PID吗?那显然是用不了的是不是,所以说你们一定要注意这一点啊,因为每个班都会有那同学把我的给复制过去,我也不知道什么情况啊,那大家呢,自己一定要注意这个情况,好这个呢,就是一个配置对象啊,定这个配置对象,好这个东西有了,接下来我是不是要想办法获取一下微信提交参数啊,然后是不是拿到这四个值,因为待会是不是都要使用啊,好,咱们怎么拿到呢?
31:04
啊,怎么去拿,怎么能快捷的拿到这四个参数。使用什么方式,那我们叫做什么专业术语啊。对象的不是方式啊,对象的结构赋值是不是通过RQ点query qry query在这里面是不是可以去提取到我这里面的想要的一些参数啊,这是解构赋值啊,这大家一定要清楚,CI natureture,还有还有个有是一呢,这四个是是都在都在这除了这四个以,我最终要把这token是不是也要参与啊,我把这token呢也拿到,我同样的也通过这个对象的结合赋值的方式呢,从这个con里面提取出来是不是OK,好,接下来咱们就要做第一步了,第一步呢就是是不是做这件事啊,将他们按照字典序排序,是不是组合在一起好这一块呢,我们怎么做呢?我们先这样做啊。
32:12
这样做,我们先定义一个数组,先定一个东西,把它们全部放在一起,比如说定一个AR,就是我到时候去参与的数组啊,我先定一个数组,把他们三个呢,参与签名的参数呢,我全都装在一块,装在一块啊,先装在一块,再说装到一块之后呢,接着怎么办呢?我是不是要进行字典序排序啊,好,接着就是进行字典序排序,怎么进行字典序排序呢?就是这个source方法a.source就够了,啥也不传,这个呢,就是我们的字点序排序AR的缩好,现在呢,是不是做好了第一步我是不是也排序,排序好了我们可以看一下最终排序好的数组啊好,第一步完成了,接下来呢,我们就完成我们的第二步需要呢,将排序好的这些这个数组啊,把它把所有的元素呢拼接在一起,然后最终用沙鱼是不是进行加密啊,拼接在一起进行上衣加密,所对应的呢,我这里是不是要去使用这个上衣,所以说我也得去。
33:21
Nb mi11是不是好,回看一下它能不能下载成功啊,好,应该在东京是不是下载完了,好那就可以了,那我下载完成之后呢,接下来的上面得。引入这个加一模块,是不是引入这个上一模块。好,这个上二一等于require,咱们的11好移入之后呢,接下来再写第二步啊,首先将它拼成和一个字符串,怎么拼接呢?A点。怎么将这数组里面的所有元素拼接在一起点哎,中语方法是不是它呢?这里传一个通的字符上就可以了啊,注意这空字串一定要传啊,不传的话会出问题,我这里面是不是啥也没有啊,完完全全是空的,连空格都没有,是不是传空字符串才行啊,不传的话会出问题啊,好拼接在一起是不是进行上一加密啊,那我就定一个加密后等个str等于上一是不是加密,我这个str好,这样呢,我们来都打印输出一下str.log table键就有了,还有加密后的这个东西呢。
34:31
加密后的东西是不是也打开看一下,我打开看一下,好第三步再看,第三步呢,就是去验证。这个东西和我原微信发过来的东西是不是一样的,是不是好,接下来第三步就验证正式怎么验证呢?判断它是否一样,我用是不是用E啊,对的啊用E,然后呢,是不是上E是否等等于C,如果等于说明。
35:06
说明消息来自于微信服务器,我要返回这个内容给他,是不是,怎么返回。怎么回相返回响应RS点的这个E是sto啊,是不是就这个东好,如果不相等说明。说明消息呢,不是来自于微信服务器,我就返回一个error是不是,如果你想快速返回的话呢,就用and是不是快速返回,返回error设置啥也不返回也行啊,如果呢,我们更加友好点的话呢,就返回个错误给他error啊好,这样呢,是不是做好了咱们这些步骤啊,到这呢,咱们就写好了咱们的第一步验证咱们的服务器的有效性啊好写完之后呢,我们来预习一下服务器啊,我把这个前面的打印结果就注释掉了,我就不看了啊,再来一次好是不是写好了,写好之后来案页面上,当你点击提交的时候呢,就能够成功了啊注意它呢,不一定第一次点点去的时候就会成功,你呢可能要多点几次。
36:11
啊,第一次呢,可能不一定成功啊,这里咱们是不是写成配置成功了,那咱们是比较顺利的啊,可能大家呢,不能够第一次成功,那没关系,你多叠几次就好了啊,多叠几次,但是呢,你这里要注意啊,虽然你的多叠几次是不是,但是你呢,不要疯狂的一直点啊,要疯狂一直点,因为这些接口呢,都会有次数限制的,都会有一些或多或少的限制,你疯狂的点呢,那肯定到后面你就用不了了,是不是,所以说你就慢一点,一下一下点可以吧,一下点好咱们是不是验证成功了,验证成功说明你这一步是OK的,如果这里一直显示的配置失败,说明你的算法是么问题,那么你就要倒回去,去验证你这个算法到底哪一步出了问题啊,好来看一下,最终呢,我们就是看到这里,首先第一个打印这个排序好的字符串,这里是不是进行排序过了,排序好了,接着呢,我是不是将它拼接成一起啊,拼接成一个字符串,接着将拼接成的字符串呢,进行上一加密,接着加密后的。
37:11
就是我那个微信签名了是不是啊,这就是这些内容啊,这些内容好这一步呢,就是验证服务器的有效性,那待会儿呢,大家就要把它完成掉啊,完成掉那如果出了问题,如果这个服务器配置失败,你就去反复的检查到底是哪一步出错了啊,有可能是参数写错了,有可能是这桌椅没有传仓等等,那么你们就去验证一下就OK了,好,那咱们呢就到这。
我来说两句