00:00
这一节课呢,我们把微信支付的相关的支付参数配置在我们的应用程序当中,以便呢在应用程序当中读取这些支付参数,那么首先呢,我们先找到这个支付参数的配置,这个配置文件呢,已经预先创建好了啊,为了节省时间,那么这个里面呢,有我们的商户号,商户号呢是在我们的商户平台的后台的账户中心。个人信息这个位置的登录账号就是商户号,第二个呢,是商户API证书序列号,那么之前呢,我们在商户平台呢,申请了API证书,就是我们看到的这个证书,那么大家还记得吧,这个证书里面有私钥,然后有证书,证书里面封装了公钥,好,那这个证书呢,是我们在商户平台申请的,那么我们申请完这个证书之后呢,商户平台针对于每一个我们申请的证书呢,都会有一个证书序列号。
01:01
我们点击一下管理证书。那这个证书序列号呢,就是之前我们在商户平台申请的这个证书,那么证书序列号和证书呢,一定要一一对应,例如我这个里面申请了三个证书,那么如果我们用这个证书序列号的话,就和刚才我们磁盘当中下载下来的这个真正的证书呢,他们不是对应的,所以呢,就没有办法通过序列号获取到真正的商户证书了。那所以。大家在自己独立开发的时候,一定要检查好哈,这个证书的序列号和你本地下载下来的这个证书文件是不是一致的,那么接下来呢,我们再来看一下商户的私钥文件,那商户的私钥文件呢,实际上它指定的就是刚才我们在证书文件夹当中看到的这个私钥文件了,那么商户的私钥文件我们加载到应用程序当中的目的呢,主要是为了做签名,我们用私钥呢,将我们的请求进行签名,然后把我们的请求信息呢发送给微信的服务器端,那么微信的服务器端呢,会根据这个证书的序列号找到我们这个证书序列号对应的证书,那么从证书当中再解密出我们的公钥,用我们的公钥呢对我们的请求进行验签,所以这样的话呢,就是一个请求的发送和接收的过程,那么对应的是一个签名和验签的过。
02:31
所以这个地方呢,需要我们配置商户的私钥文件,需要我们配置商户证书的API序列号,好接下来呢,就是APIV3的密钥了,那么APIV3的密钥呢,我们是之前在这个位置设置的,那这个密钥呢,是一个对称加密的密钥,再接下来呢是APIDPID呢是我们在申请商户号的时候呢,同时也申请了一个微信的公众号,那么APID呢,就是微信公众号当中给我们分配的,接下来呢,就是微信的服务器地址,那么这一个章节呢,我们要讲的是所有的微信的APIV3的接口,那么这些接口呢,它其实都是向远程的微信的服务器发起接口调用,那么这个地址呢,就是远程的微信服务器的地址了,最后一个接收结果通知地址,那前面我们说到,我们在整个应用程序当中,不但要向微信发送请求。
03:31
那微信也要向我们的商户端,也就是我们的鼓励学院这一端发送请求,前面我们说过要用到内网穿透,那这个地址呢,未来我们每一个人的地址都是不一样的,所以呢,大家要根据实际的情况进行相应的修改好,那我们的这个配置文件复制进来之后呢,我们需要在应用程序当中把配置文件当中的信息读取出来,所以呢,我们在config目录当中呢,创建一个配置文件来读取我们这个properties配置文件里面的相应的信息,那这个Java配置文件里面呢,也要对应的包含所有的啊这些配置项,那我们把这些配置项呢,配置成属性的形式,所以呢,我们直接复制这个已经写好的代码。
04:19
把它复制在我们的目录当中,好,那你会发现呢,这个文件里面的所有的属性就和我们properties配置文件里的所有的这些自定义的配置项呢,是一一对应的,那么我们来看一下上面的注解,首先呢,这里面有一个configuration注解,因此呢,在整个应用程序加载的时候呢,我们的这个配置文件呢,就会被创建出来。然后接下来呢,有一个property source注解,那么它呢,会自动的读取我们这个配置文件当中的所有的信息,那读取具体这个配置文件当中呢,哪一部分信息呢?Configuration properties注解呢,指定了我们要读取这个前缀叫做微信配啊这个节点下面的所有的属性信息,那所以你会发现我们所有的这些自定义的配置下呢,实际上都是定义在了微信配这个节点下。
05:17
那么读取下来的这些信息之后呢,会自动的被设置在我们所有的这些属性当中,它是如何设置的呢?是通过data这个注解里面给我们提供的set方法,把这个里面相应的自定义配置的值就设置在了我们这面的属性的值当中,那么大家可能会发现我们这边的编码风格是这样的,配置文件当中呢,用的是中华线的风格,而Java代码当中呢,采的是这种驼峰风格,那么在我们的spring boot项目当中呢,配置文件当中的中华线风格和我们的Java当中的驼峰风格是可以自动的做映射的,所以呢,现在我们的应用程序呢,就已经能够通过微信配这个配置文件读取到我们的微信配proper里面的所有的配置项了,那接下来呢,我们对这个配置呢,做一个简单的测试,我们建一个测试的接口。
06:16
在controller这个目录下,我们新建一个class,叫test controller好。这个里面呢,我们写一个的注解API。然后接下来呢,我们再写CT了,最后呢,我们再添加一个request买品,那么这个接口的地址呢,我们写API test。接下来呢,我们把刚才我们创建的这个微信配肯费啊注入到这个位置,所以是resource private微信配。
07:13
好。我们呢,来写一个具体的接口方法,Get mapping public get微信,嘿,看这个我们把R这个对象呢引进来。那我们使用我们的微信配config.get我们随意get出里面的其中的一个配置项,比如说我们获取商户ID,好,我们直接二,然后呢,我们把这个交给前端展示出来,如果能正确的展示出商户ID来,我们说呢,我们的这个配置呢就成功了,所以接下来呢,我们来启动一下我们的服务器。
08:19
好,服务器启动成功了,我们来访问一下我们的SW的测试页面。那这面呢,有一个测试控制器。我们点击一下try it out,那你会发现呢,这个里面已经成功的显示了我们的商户号。所以呢,到目前为止,我们呢,已经成功的读取了我们微信支付的相关参数到我们的应用程序当中。那我们还可以对我们的应用程序呢,做一个简单的优化哈,我们来看一下我们的配置文件application,这个配置文件呢,是我们的spring应用程序默认的配置文件,那么这个配置文件里面的这些配置项呢?通过点击其中的一个配置项,其实呢,我们是可以找到这些配置项的定义的位置的。
09:11
啊是我们法点进去,这是为什么呢?因为首先第一这个配置文件呢,在我们的idea当中,Idea没有把它看成一个配置文件啊,那这个其实是不响我们应用程序,但是呢,少了很多功能,比如这种自动的定位的这种功能。那么我们首先呢,需要把微信配proper呢变成我们的spring的配置文件,好,所以我们点击file,点击project structure,然后选择S,那你会发现这个里面呢,只有一个配置文件出现在了这个地方,所以呢,我们来点击自定义spring配置。
10:01
然后呢,点击这个加号。找到我们刚才的微信properties配置文件。点击OK,然后点击OK,你会发现这面呢,它就变成了我们的spring的配置文件的一个展示形式,那么同时呢,我们文件的这个自定义项的颜色呢,也变成了蓝色,看起来呢好像更正常了一些哈,好,现在呢,我们假设来点击它还是没有办法定位,那这个呢,其实我们还需要有一个步骤,那这个步骤呢,就是我们需要加一个注解的一个自动处理器来帮助我们呢,将这个配置项呢生成原数据信息,那么生成完原数据信息之后呢,在当中就可以自动的把我们配置文件当中的配置项和我们呃这个property source里面所读取的配置文件当中的这个属性就自动的呢就关联起来了,所以呢,我们在我们的po.xmll当中添加这个依赖。
11:03
然后在Mar当中我们刷新。好,刷新成功之后呢。我们在微信里面呢,如果你现在点击啊,它依然是没有办法使用的,所以呢,我们需要去重新启动一下我们的服务器,或者是呢,重新编译一下我们的应用程序都可以。好,现在呢,我们的应用程序呢,已经重新启动了,那么我们再来看一下我们的这个配置文件,我点住我按住CTRL,然后点击这个MD,那你会发现呢,这样的话就可以做这个程序定位了,方便我们应用程序的开发。
我来说两句