00:00
各位同学大家好,咱们继续来往下学习,之前呢,咱们完成了公众号菜单管理,最终在公众号里边能看到我们添加的菜单信息,那咱可以再看一下啊,打开我们关注这个公众号的测试账号,然后打开发消息,在下面咱们看到有这个直播课程和个人里边有他的二级菜单,这是咱们之前完成的公众号的菜单的这个部分,那下面呢,我们继续来完成公众号的其他功能,下面呢,咱来完成这么两功能,给各位做个介绍,然后咱们做个实践。我在里边写一下,首先我们要完成的第一个功能,那就是公众号里边这个消息的功能,消息中分成两类消息,第一类叫普通消息,我先写,然后我都做解释,最终咱们用最终的代码进行实现,然后里边还有第二个消息,写一下公众号消息,这个叫模板消息。
01:04
另外里边还有第三部分,那就是公众号这个授权的这个操作。所以这是我们要完成的是下面的三个内容,公众号的普通消息,公众号模板消息以及公众号授权操作,那三个内容是什么含义,我们先做个介绍,然后进行实现。首先大家看第一个啊,公众号消息,什么叫消息呢?举个例子啊。比如大家看,我以这个上硅谷教育为例,我把它打开,打开之后点击发消息,然后在里边点这个按钮,你看比如现在我在这个输入框中输入一个关键字,咱就输入一个Java。输入之后我一回车,大家看给我们是不是返回了相关信息啊,这就叫公众号的普通消息,把你输入的内容,根据输入内容返回相应的结果,这是它的第一种消息,这个咱们一会儿进行实现。
02:05
另外还有第二个消息叫模板消息,什么叫模板消息呢?举个例子啊,比如现在啊,我在公众号中我生成了一个订单,当我订单生成之后,在里边给我提示,比如说提示我说你某某订单号,某某订单生成成功了,那你给我发送一个标准格式消息,这个叫模板消息,这咱们一会儿进行实现,另外里边还有第三个叫公众号授权,什么叫授权呢?强调啊。我觉得这个效果各位同学应该都见过,比如说你在日常生活中,或者在网上,你扫某个二维码,然后去关注某公众号,在关注之前你要点一下同意,比如同意里边,里边有这么一个消息,说可以获取到你当前微信的昵称等信息,咱们点同意进行关注,然后再往下进行,所以咱们也是做这个事情,公众号的授权操作,在手机微信上点同意,然后可以得到你微信的信息。
03:06
比如说你微信的ID,微信的昵称等等,这个叫公众号的授权。所以以上是咱们下面要完成的三个内容,公众号普通消息,公众号模板消息以及公众号授权操作,下面我们进行实现,那这个怎么做,给各位详细说明一下,咱们一步步来看啊,就是刚才我提到的啊里面那个,然后咱们看啊,那怎么做呢?首先第一个在它的官方有个文档,这文档中告诉我们这个过程到底该怎么去做,那我现在啊,把这个文档打开,我直接点CTRL用浏览器打开这个文档,然后文档中写到它该怎么去做,里边有一个基本的步骤。这里写到啊,下面详细介绍这三步骤的实现。那我们看怎么做啊,第一步是什么?填写服务器的配置,什么叫服务器配置呢?给各位说明,比如说你现在啊,我们要进行这个就是消息的这个操作,或者说叫公众号消息操作,那里边呢,微信的官方它要做件事情,要调用你程序中的一个接口做一个校验,看其实他的目的就是一个目的,看一下你这个服务器是否连通,你的过程是否能走通,所以他要这里边做一个这么一个校验,所以咱们在那个公众号里边要填你当前服务器这个接口的路径,这是第一部分填写服务器配置,这个配置写你的接口路径,接口中就是得到它传回来的数据,然后给他返回校验的信息,所以第一部分填写服务器配置,那这里边我们来填写一下啊,大看怎么做。
04:50
首先我强调啊,如果说呢,你用的是公众号那个服务号,那服务号里边把它打开,我们找到里边这个地方叫基本配置,在基本配置中大家看这个位置叫服务器配置中的服务器地址,这里边写上就是你那个消息的一个接口,用于校验,这接口咱一会儿实现写上接口路径,这是我们正式号,而咱们现在因为用的是测试号,所以大家看到啊,测试号怎么找,之前说过,我再说一遍啊。
05:24
你点开发者工具里边有一个叫公众号测试号,然后里边进入,包括各位关注我那个公众号就可以了,然后咱们进入我们看啊,在这里边它的配置在这个位置。这里我已经写过了啊,这个配置就是我后面那个接口的路径,但是路径中注意啊,你看我前面部分是不是一个域名啊,就是它不支持本地,比如你写上本地的local house,那他访不到,他要用域名进行访问,这域名怎么解决,一会儿咱会说到啊,其实不需要我们申请一个真正的域名,咱们用一个工具内网穿透可以做到一会儿来介绍,所以咱第一部分在你微信公众号的测试号里边配置你的接口路径,这个我已经配置好了,各位同学不需要做这个事情,你只需要关注我公众号就可以实现。
06:16
所以这个啊,第一部分给各位我来说明一下啊。我先截个图,在笔记中给大家写的详细一点。这里我截个图,然后在这个位置我们配置它这个地址啊,另外一个ton有一加密签名的,主要是写上面这个,这个已经配置好了,我在里边写一下。它的第一部分。我们在。公众号里边配置你这个就是消息校验的这个接口的路径,这个路径不支持本地访问,就不支持local house访问,需要使用到域名进行访问,所以我这里边已经配置好了,用的是这个地址。
07:03
这各位知道一下啊,就是我们的第一步。然后这步之后呢,我们再看第二步怎么做,第二步看它的官方文档中写到的,看文档的描述,第一步就做到了,然后第二步怎么做,说验证。消息的却的确来自微信服务器啊,就做一个校验,比如说咱们写接口,那接口中怎么做呢?说这个流程啊,这里写到。就是微信服务器它会发送一个get请求,就是发送到哪里,就是我刚才配置这个接口中,所以我们在接口中做的事情是什么,得到微信给咱们发过来的消息,把消息得到,最终在返回里边这个值,包括你看啊,他给咱们发过来的是一个get请求,然后发过来这么几个值,第一个这个值就是微信的加密签名,第二个时间戳,包括随机数,包括随机字符串,他把这四个值给咱传过来,那咱们做什么事情,把四个值得到,他告诉你啊,若确认此该的请求来自微信服务器,请原样返回里边的这个字符串,就是随机字符串,也如说它给我传过字符串是什么,给他再返回就可以了,如果说你不能返回,那就失败,所以咱们一块儿就写接口,接口做的事情就是得到里面这几个值,然后把它给我们传过来的随机字符串给它返回就可以了。这。
08:27
是咱们要做的第二部分来编写这个接口。那我写一下啊,里边的第二步。就是获取微信给我们传递过来的这几个参数,然后返回它里面那个随机的字符串,就来编写这个接口。写一下啊接口,然后这个接口注意它的路径要跟你服务器中配置的路径要保持一致。就是接口的路径要和你的服务器或者说公众号。
09:03
它这个里边配置的服务器的地址要相同,如果你不相同,他肯定过来,所以现在啊,我们要做第二部分就来做这个事情。那下面咱们把这个给他做一下啊,咱做第二步,然后咱先看完啊,这步做完之后,第三步呢,那我们就根据业务,比如说我们现在啊,我们输入一个Java,然后给他返回什么消息,就是刚才我们测试那个商一股教育里边我输入Java返回是不是这个内容,所以后面咱会写到他返回的数据,以上就是一个基本的步骤啊,这里都有,那下面呢,第一步做到了,咱们来写第二步,第二步就来编写一个接口进行实现,那接口我来写一下啊。咱们现在来到咱们的代码中,我在这个v chart里边加上一个CTRL。把这个加上。然后ctrler起个名字message ctrl在上面加上它的路径啊,这个我先复制过来。
10:05
然后路径特别说明啊,里边有这么一个地方。大家看这地址啊,叫A片we chart message,这一路径要跟你服,就是微信公众号中配置的服务器的路径要保持一致,大家看啊,我刚才配置是不是叫这个名字,这要一样,其实你可以随便写,但是保证两个相同,因为我在这里边已经配置好了,所以各位写的话,后面部分跟我这一定要一样,要不然这个不能做这个校验,这是我们写的这个路径,然后写完之后在里边写上他的具体代码。那我来写一下啊,这个代码很简单,咱们看刚才那个文档中的说明,就这句话。这里写到啊,微信服务器将发送get请求到填写服务器的URL上,然后get请求,其在参数如下,那咱怎么做,我们在接口中是不是就把这几个值得到就可以了,那咱看怎么得到啊,看我这个方法里边get请求,我们用request对象,直接用request get per把景值得到就可以了,然后下面做一个校验,这校验是一个方法,这些方法也是他官方提供出来的,就这个方法咱们做个校验所下面啊,这里边就可以实现,那这个代码我就不敲了啊,给各位直接复制过来,因为就是用request直接得到这个数据,这是web阶段最基础知识,直接得到。
11:32
这个代码我给它复制过来,然后咱们看一下啊这个内容。把这个我先做个复制。然后咱们把这个。依赖先引入咱们来看一下啊。Request请求啊,这logo就不写了,这日志就不写了,咱直接把这个返回。然后下面有这么一个校验的这个过程,就是做一个加密或者编码过程,这加密编码中用到一个加密的工具类,咱们在之前已经复制过了,所以现在啊,这过程完成了,那咱看一下这个代码啊,就是现在我们要进行消息发送的时候,第一步先做个校验,那校验的话呢,微信服务器会请求你在公众号中配置的地址,那请求我的这个地址,然后在地址中咱们用快对象得到微信给我们传过来的数据,传过来数据之后。
12:27
下面这位置做个校验,看数据这个值是不是一样啊,就是不一致。然后这校验过程中,这里边有个密钥,我们叫硅谷课堂,这个密钥注意要跟你里边这个密钥保持一致,就token值要一样,然后下面是一个校验的方法,这咱直接复制可以了,然后最终在里边你看啊,如果说校验通过,那咱把这个随机磁符串给它返回微信,看到你把这个返回了,证明这个服务器有效,然后它会往下进行,如果你不能返回,证明无效。
13:01
咱们看里边也都写到了。请原样返回里边这个随机字符串参数内容,所以咱们现在把第二步就完成了,这是咱们写的这个代码。然后这个写完之后,下面呢,我们再写第三步操作,第三步做什么呢?那就是接收微信给咱们消息的一个反,比如现在我输Java,他要给我们返回数据,所以咱们把这数据做个接收,然后接收怎么做就直接看我的文档中啊就是下面呢,它的消息只是发送一个POS请求,咱们把消息给他接收就可以了,那比如说我写个方法。Receive message进入到他的消息,然后它的消息呢,返回的是这么一个格式。大家看啊,这这么个事儿。是不是插买了格式,这里边我们就把插买了格式,比如转成一个外部集合给它返回就可以了,所以这就是最终返回消息部分,那现在啊,我把这个给各位啊,我来也是复制一下,因为是固定代码,各位自己写的时候呢,不需要你敲一遍,你直接复制可以了,微信官方都有对应的代码。
14:10
那我现在把这个我就直接拿过来,我就放到。这个位置。咱们啊看一下这个代码啊,首先我们看啊,用POS请求接收微信服务器给我们发过来的消息,比如说我输入Java给我们反映什么,给我发消息,然后发消息它会调用里边的这个POS方法,在里边咱们得到给我们返回消息,因为它的消息是个叉格式,所以下面我来调这个方法返回一个Json给他最终返回啊下面有一个工具类的方法,就是把叉L,我这里是转成一个map即可。这个啊,我直接拿过来,包括你看啊,用这个做这个解析,最终给它返回,我把依赖啊快速引入一下。啊,就这些依赖啊。
15:01
这个历次集合。所以现在啊,这个部分完成了,我现在呢,先做个简单测试,比如咱先捋成一个success成功,后面咱再完成其他部分,所以以上啊,我们就把这个消息这个流程就完成了,这个过程我再说一遍啊是怎么做的。首先第一步咱们在公众号的后台需要配置你的消息那个校验的那个地址,或者CTRL这个接口路径,这个路径注意要跟你这个接口保持一致,我的径这个名字,然后第二个里边加上一个get提方法,所以咱们校验的方法,校验中怎么做,微信服务器给咱们传过来四个值,咱把这值做个校验,就调我这个归类的方法,最终把它C字符串返回就可以了。然后下面还有一个接收微信发过来消息方法,这个方法咱们写个POS请求就可以接收,这名字可以随便起,然后得到他给我们传回来的消息,最终给他返回,包括他给我返回消息是个叉格式,咱可以把叉转成map或者转成别的格式,我这里为了测试先存一个success,咱们后面再进行进一步完善。
16:17
所以现在啊,咱就把这个消息这个基本过程就完成了,这个过程呢,我说明啊,不是我约定这么做的,是微信官方约定,他约定先校验成功,然后在里边传参数,包括再返回,所以咱们现在按照这个过程进行实现。那我把这个笔记补充完整啊,第一步配置第二个编写接口,这接口是一个。Get请求,然后咱们啊得到它的数据,把这返回,另外里边还有第三步,第三步就是接收到。微信。返回的这个消息啊,这个消息我们是一个POS请求,而它返回的是个叉L格式,咱们把叉格式可以转成JC,或者转成别的结构,方便咱们返回,所以以上是一个消息的基本流程,咱们现在就完成了,完成之后呢,我们进一步往下来做一下啊,就是目前这么做之后呢,咱们并不能做测试,因为里边还有一个问题。
17:19
大家看这个位置啊,就这里。你看啊,前面的这个部分是不是一个域名啊,也就是说微信这里边它只支持域名,因为咱们目前在本地,它不支持本地访问,所以咱们需要弄个域名才可以,这个域名呢,不需要咱们特别去申请什么域名,咱们直接通过一个工具可以做到。这个工具是什么?我课件中写到了,它叫内网穿透,就是通过内网穿透能访问到你本地代码,为了咱们能进行测试,所以下面我们说一下内网穿透啊,那内网穿透呢,很多同学应该不理解,说的最直接点啊。
18:01
给大家这么来说啊,我画个图说明一下。比如现在啊,这个是那个微信的服务器。微信服务器呢,这个是咱们本地的服务器,就是本地这个local house服务器,但是第一个微信服务器,它不能直接访问到我本地服务器,这个肯定是访不到的,这肯定进不来,因为我本地low house微信肯定不知道这个做不到,那怎么做到呢?我们的做法就是在中间部分咱们加上一个域名。啊,这域名比如说啊,比如说随便写一个,我叫ad硅谷,比如点CN这个域名,那怎么做微信服务器能访问到这个域名,这是可以的,然后这个域名呢,帮他去访问咱们的本地服务器,通过一个这个过程实现这个过程,它就叫内网穿透,通过一个域名访问到咱本地服务器,这么做你能实现一个测试啊,但是这个效果只适合测试,在实际的开发中,咱们把代码肯定是步入到一个真正服务器这种域名中,咱为了自己调试,通过内网穿透访问到我们的本地服务器,这个是咱们提到的这么一个过程啊,就是内网。
19:13
穿透进行实现。那下面呢,咱就做一下这个内网穿透,看它该怎么去做,给各位演示一下啊,内网穿透在实际中有很多这种工具,咱们选取这个工具就是NG进行实现,用它做我们操作,那我们看怎么做啊,演示一下。首先第一个咱们访问的官网就是n.cc这个官网,第一步你先进行注册,你用一个邮箱直接注册可以了,我这里边已经注册过了,然后注册之后下面我进行登录,那我这里登录一下啊。这是我注册这个账号啊,这是我的密码。登录,然后登录之后呢,在这里边我们来看一下,比如现在我先刷新,然后大家看啊,在这里边呢,我们怎么做呢?首先里边的第一步操作给大家说明啊,我来强调一下啊。
20:14
首先啊,我们要做的话呢,里边的第一步操作,大家看这里是不是叫实名认证,所以咱们首先需要先进行实名认证,这是第一步,就是注册之后,里边先进行认证,这个认证呢,它需要收费,认证费是两元左右,这个价格我之前认证是两元,后面可能会有变化,但是一般应该也就是这个价格,所以第一步要进行实名认证,包括用微信公众号关注这个内网穿透我这里已经关注过了,所以第一个认证也完成了,然后完成之后我们的第二部分在里边,咱来开通这个隧道,那我们来开通啊,什么叫开通隧道,就是申请一个域名能访问到本地,这隧道有很多前面都是收费的,最后一个是免费的。但是免费呢,有一个问题啊,免费它的网很慢,经常连不上,我这里边申请的是两个收费的,这个就是内网穿透这个服务器,包括你点这个咱就演示一下啊,因为我已经申请过了,我点立即购买。
21:15
然后在里边确定,在这个位置填写协议HTTP,然后随便起个名字,包括前置域名,就是你最终那个名字,域名里边带什么名字啊,叫什么名字,包括这是你本地反断口号,比如说我现在域名叫at硅谷点CN,然后这里边填入域名,加上at硅谷,最后本地服务器咱是local house8333,那里面加上最后确定就可以了,我这位置已经添加过了,那咱看一下啊,点击隧道管理。我加了两个内网传统服务器,然后我的这里边咱们看第一个啊看一下。这我之前写到的啊,我这里边比如你看啊,前置域名叫硅谷课堂二,然后后面生成一个域名,包括这里边它用的本地多号8080。
22:04
另外里边还有一个看这个。这叫硅谷课堂一,然后他用的本地端口号是8333,因为大家看到啊,我们这个项目中的网关的端口号就是这个getaway,网关端口号是不是就是8333,所以现在咱就通过内网穿透可以访问到,这是我申请这个内网穿透的域名,然后他的域名呢,就这个名字,你看啊硅谷课堂,然后VIP这个名字,所以你看啊,我这个名字刚才在公众号后台配置的是不是就是它,所以用这个就行访问,咱通过它才能完成本地测试,如果你不这么写,那你不法没法做到测试。各位后面用的话,用我这个地址直接测就可以了,所以现在啊,咱们把这个做个说明,关于内网穿透部分,然后内网穿透这个申请之后,下面咱需要启动隧道,然后才能行实现,那下面我来做个启动,然后最终我们再进行测试。
我来说两句