00:01
在前面的引入支付参数的过程当中呢,我们在这个配置文件当中配置的一个商户的私钥文件,那么很显然我们是需要将这个私钥文件引入到我们的内存当中的,这样的话我们才可以使用这个私钥文件对我们的要发送的信息做签名。好,那么如何去把私钥文件加载到我们的内存当中呢?首先我们要找到这个私钥文件,那么我们从我们的资料里面找到商户证书,找到这个证书文件夹,然后呢,打开之后呢,这个文件之前我们说过它就是私钥文件。p.P啊,大家不要拷贝错了,那么我们把它复制到我们的项目的根目录下。好,现在呢,他已经在项目的根目录下了,那么复制完了之后呢,我们来看一下怎么去读取这个私钥文件,那么在我们的微信的文档中心当中,我们随便点击一个啊,比如说点API文档。
01:04
先进入到他的这个文档页面。好,那我们在这个地方找到SDK。那微信呢,给我们提供了多种语言的开发库,帮助我们去和微信支付的服务器做对接,那么依赖于这些开发库呢?我们可以基于比如说Java语言,基于PHP语言,基于go语言来快速的完成支付接口的对接,所以作为Java开发者来说呢,那我们就选择第一个好,我们把它打开,我已事先把它打开了,因为这个GI。请求速度稍微有点慢哈,好,那么接下来呢,在这个里面我们要引入这个开发库。那么它的引入方式呢,是通过ma引入,所以呢,我们复制一下。粘贴在我们项目的破门件当中。
02:00
这个实际上就是微信支付的SDK了。好。我们刷新一下麦列表。那我们把微信支付的SDK呢,引进,引进来之后呢,我们来看一下这个SDK怎么用哈,那么在当前的这个页面当中呢,我们搜一下叫私钥。这里面有一个叫做如何加载商户私钥,那么前面呢也提示咱们了,在我们的API证书里面会有商户的私钥,并且呢会存在本地证书文件夹当中的一个文件当中,所以刚才我们已经把这个文件复制到我们的项目当中了,那么需要用下面的这个代码呢,把它加载进来,那其中呢,前面这个方式是如果次要是存储在文件当中的话,我们就用上面这种方式,那么如果私钥是以一个字符串的形式存在的话,那么我们就用下面这种方式,那我们的私钥呢,是以文件的形式存在的,所以我们采用上面这种方式。
03:21
我们把这段代码呢,直接复制到。我们的微信配这个里面,在这个里面呢,我们来创建一个辅助的方法,那这个方法呢,我们可以给它起个名字,就叫做get rabbit钥。那么这我们看一下它最终得到的一个数据类型呢,就叫做private key,这个呢是私要对象类型。好,那获取饲药这个方法呢,我们未来呢,在当前的这个IG类的内部去使用哈,所以呢,我们在这面呢,可以给它定义成private的。
04:09
然后这块呢,我们是需要有一个私要文件的路径的。好,接下来呢,我们就把刚才咱们。看到的这句话呢,给它复制过来。好,那这个呢,就是获取私钥文件,而且这个私钥文件是商户的私钥哈,别人的私钥或者是平台的私钥不可能被我们访问到,对不对,因为私钥文件呢,只有私钥的拥有者才能够拿到,才能够获取,好然后接下来呢,我们在这面呢,做一个try catch吧。Ctrl alt加T,我们选择try catch。那么在开始代码块当中呢,我们去抛出一个异常,我们抛出运行时异常。
05:04
Runtime exception这面呢,我们直接写私钥文件不存在,然后把这个错误对象呢继续向上抛出。那么如果私钥文件存在的话呢,我们就可以将得到的这个四要文件呢,直接返回了,所以这面呢,我们可以直接写一个语句。啊,这个地方呢,它是一个私钥文件的路径,所以呢,这个位置我们可以用file name来代替。好,这样的话呢,一个获取商户私钥文件的这么一个方法我们就写好了,那接下来呢,我们需要对这个方法呢进行一个测试,那当然了,如果它只是一个私有方法的话啊,我们在其他的位置去测试呢,就没有办法测试成功哈,所以呢,我们先临时把它改成public的啊,然后呢,我打算这回呢,咱们在测试文件当中进行测试。
06:01
其实测试的方案有很多种,可以像前面一样在controller里面。创建这样的一个接口方法,然后呢,对我们写的啊这些工具方法做测试,那么。还有一种更好的方式呢,就是在测试用例当中啊,直接写我们的测试的内容,所以我们打开默认的这个测试类,然后在这个里面呢,我们添加一个测试方法,那我们测的就是这个方法,Get private key。所以我们写get private。好,然后呢,我们将微信的配置文件给他注入进来,Private微信config。在测试方法里面。我们通过微信PA fig的get private。
07:02
获取到我们的私钥信息,那当然这个地方呢,它是需要一个路径的,那这个路径怎么获取呢?路径呢,我们依然是可以通过微get private key pass的方式呢,获取我们的要路径。好,然后接下来呢,在下面这个位置我们就可以获取私钥了,那么这个位置呢,我们需要传递一个需要路径,好,接下来呢,我们打印一下。我们的私钥,我们来运行一下。好,那你可以发现现在我们的应用程序当中呢,就打印了一些内容,这里面包含比如说这是私钥的算法,很显然对吧,这是一个非对称加密的算法,然后还有一些其他的内容,那么他用的是2048比特位的这样的一个密钥。
08:09
这个就是我们获取私钥的一个具体的过程,当然了,这个测试完成之后呢,建议大家还是把它改回来,改成private的,那这样的话,对于我们的这个私钥方法来说呢,它会更安全一些,然后这面呢,我们可以先临时把它屏蔽掉吧,这是我们的测试。测试的是获取商户的私钥。
我来说两句