00:01
这节课呢,我们来实现内网穿透,那我们还是来看这张业务流程时序图,我们已经在前面的课程当中呢,实现了商户后台当中的生成订单,调用统一下单API以及将链接生成二维码图片这样的一个完整的流程,那么也就意味着实际上这张图当中橙色的部分是啊,应该由我们的商户后台来完成的,而绿色的部分都是其他的角色,比如说微信支付的用户呀,比如说微信的客户端呀,以及微信支付系统来完成的内容,所以呢,当我们做完了1234这四个步骤之后呢,那剩下的工作就是由我们的微信支付的用户,微信的客户端以及微信支付系统他们之间的一个交互了,那么在这个过程当中呢,微信用户呢,打开二维码扫一扫,提交了扫码链接,并且验证了我们的支付密码之后呢,我们的这个微信端呢,验证授权就可以完成整个的支付交易了,支付交易完成。
01:01
成之后呢,微信端会给我们的用户的微信客户端发一个支付成功的结果,那么同时呢,他也会给我们的商户系统发送一个支付成功的结果。那么我们这节课要解决的问题呢?就是微信的服务器端如何给我们的商户系统发送请求。现在我们绝大部分的开发机器呢,都是基于局域网的内网地址的,所以呢,微信服务器没有办法直接通过我们的内网地址找到我们的开发机器,那我们呢,就必须要做一个内网穿透,这样的话呢,我们就可以获取到一个固定的外网地址,那么微信服务器呢,根据这个固定的外网地址呢,就可以访问到我们了,所以接下来我们来介绍一个内网穿透的工具。好,内网穿透的工具呢,有很多啊,有收费的有免费的,我们来说一个比较稳定的一个免费的工具。
02:05
他的地址呢是nro.com。还是国外的一个。主机,所以呢,这个站点的访问速度呢,相对不是特别快好。那么我们先来到这个NG rock这个主页当中来,首先我们要做的事情呢,就是先注册一个账号,那么账号注册完毕之后呢,你要用这个注册的账号呢,进行登录。好,因为之前已经入一次登录的话呢,你要输入你的账号信息哈,好登录完成之后呢,首先你要根据你的操作系统。
03:02
选择一个工具进行下载,那我的操作系统呢是Windows的,所以呢我下载这个啊,所以呢我就下载这个Windows版本的这个工具,那你有可能是Mac啊,有可能是其他的操作系统,那么你就根据实际的情况选择下载就可以了,那么这个工具呢,我已经下载下来了,并且呢,我把Windows这个版本的压缩包呢,放在了工具目录当中,那么大家解压就可以使用了,好双击打开之后呢,这里面呢有一个。Exe文件,那么我们可以通过CMD回车的方式呢?在当前的这个目录下打开一个命令行,那么在这个命令行当中呢?首先我们要做的第一件事情。就是为我们的计算机做授权。那么需要在我们的计算机上呢,做一个o token,也就是身份认证令牌的这样的一个配置,那么我们把这个命令呢复制一下。
04:03
好,因为我用的是Windows操作系统,所以呢,我的这个命令呢,前面就不带点杠,如果你用的是其他的操作系统的话,比如说Linux呀,Mark呀,那么前面你这个地方呢,就要带点杠啊这样的一个啊前缀了。好,那我来执行一下,这样的话呢,它会在我的本地的计算机的个人目录当中创建一个ND.yml的配置文件。更多的功能和更长的访问时间了。那接下来呢,我们就可以执行启动的命令了,当然了,这里面还有一个help的命令,可以帮助你调用出它的帮助文档,那么我们直接使用n rock http,那你想映射的端口号就可以了,那我们的后端服务呢是8090,所以呢,我们其实呢是想让微信的服务器呢,直接访问我们后端服务开发的某一个接口,所以我们就将rock映射到8090。
05:11
那么我们使用这个命令。叫NJHTTP8090。我们稍微等待几秒钟,他这面呢,正在建立远程连接。好,经过短暂的一个红色的提示之后呢,它就啊显示了一个online啊,Session status online,意思呢,就是我们的远程连接呢已经建立起来了,那么NG rock呢,为我们开通了一个专门的隧道,帮助呢我们和外网建立一个访问通道,那么他给我们提供了两个访问地址,一个是HTTP形式的,一个是HTTPS形式的,我们用哪个都可以,但是呢,在咱们的支付的项目当中,为了保证安全,建议大家呢,使用HTPS形式的这样的一个访问地址,包括未来我们的应用程序在正式的生产环境上部署的时候,那么呢,我们也需要去发布HTTPS这样形式的一个服务哈,好,那所以呢,我们先来看一下我们的这个内网穿透的地址,能不能通过外网去访问我们的内网的接口,那现在呢,我们的8090有一个测试接口。
06:36
我们之前使用过的这个测试哈,然后呢,我们通过这个方式呢,点击测试就可以成功的访问到我们的接口的内容那。这个呢是一个内网地址,所以我们能访问到,那现在呢,我们把这个地址换成外网地址,看一看能不能访问到我们接口的内容,所以呢,我们先把这个地址复制到我们的浏览器的地址栏当中。
07:00
好,现在通过内网地址是可以访问的,接下来呢,我们再把刚才我们获取到的外网的映射地址复制一下。那我们把它复制到刚才浏览器的主机这个部分。回车。好,你会发现呢,依然是能够被访问到的,所以这样的话呢,我们就成功的实现了一个内网穿透的映射,但是这个工具因为是免费的啊,然后呢,它相对还比较稳定,所以呢,它有一个啊另外的缺点就是这个地址呢,它是不固定的,每次我们重新启动的时候呢,它都会发生一些变化,比如说现在呢是14313012,那我呢,直接把这个命令行窗口关闭掉,这个地址呢就失效了,那我们可以重新启动一下它。好,重新启动的时候呢,我们就不用再去配置那个otoken,也就是我们的访问令牌了,我们直接去运行。
08:04
这个命令就行了。好,你会发现呢,这一次的地址呢,和刚才还是稍微有一些区别的啊,所以呢,他每一次呢,都会给我们分配一个新的地址,那这个地址呢,未来我们会配置在我们的服务器当中的配置文件当中。也就是这个位置啊,所以呢,那你每一次重新启动这个N的时候呢,一定要想着把这个位置呢的配置呢,要重新去改动一下,所以这个地方就稍微麻烦一点啊,如果大家忘记了的话,就会导致我们的结果通知没有办法成功的接收。
我来说两句