00:00
接下来呢,我们来引入服务器端的SDK,也就是我们要引入阿里配给我们提供的开发工具,那么我们依然是打开open,点阿里配点。com,我们选择文档。然后选择下面这个开发工具,了解并下载SDK。好,在这个开发工具的通用工具当中呢,我们选择服务端SDK,然后选择Java,这里面有两种版本,一个是通用版,一个是EZ版,E版呢,顾名思义,它会比这个通用版在编程实现上更为简洁一些,但是呢,EZ版并没有覆盖所有的阿里配给我们提供的这样的一些功能哈,所以呢,我们还是选择通用版。那么在通用版这个页面当中呢,我们选择的项目依赖。好,打开这个依赖的列表页,我们选择最上面这个版本就可以了。好,这边呢,有一个阿帕奇ma依赖配置项,我们复制一下它。
01:04
点击这个复制。然后呢,我们打开我们的idea,找到我们的泡沫文件。在我们的泡沫文件的。适当的位置呢,我们添加刚才的这个阿里支付宝的这个SDK,好我们刷新一下麦问面板。这样的话呢,我们就完成了SDK的引入,那么引入SDK之后,我们的第一个任务呢,就是要创建一个远程连接的客户端对象,因为我们要利用这个远程连接的客户端对象呢,去调用我们的阿里配给我们提供的一系列的接口,那么我们在创建连接对象的时候呢,我们要知道之前呢,我们曾经学习过一个叫签名的概念,那么我们要创建的这个连接对象呢,最好是能够自带签名的,这样的话呢,我们就不用在创建远程连接的过程当中呢,自己去实现签名了,并且呢,我们接收到请求之后呢,我们还要进行验签,所以呢,我们希望这样的一个连接对象呢,可以帮助我们去封装所有签名和验签的过程,那么关于支付过程当中的签名和验签呢?前面我们也提到,在微信支付的课程当中呢,我们进行了详细的讲解,那签名的原理,验签的原理,以及具体的实现的流程呢,大家可以去参考微信支付当中讲的这个。
02:34
底层原理那么我们来看一看我们如何在我们当前的这个阿里的这个支付当中去创建一个带签名的客户端连接对象。我们还是来到刚才我们的这个文档中心这哈,我们找到技术接入指南,然后这边呢,它有一个叫加签与验签数据签名。好,我们在这个文档当中呢,找到。
03:00
这个里面有一个叫做使用支付宝SDK进行签名,那么刚才我们刚刚引入了SDK,所以呢,我们就可以使用这个SDK呢,将签名的过程呢封装起来。这个里面给我们提供了两种签名的方法,第一种是公钥,第二种呢是公钥证书啊,我们之前讲过,公钥证书呢,只有涉及到一些资金支出类的接口才会使用到,所以呢,我们就直接使用公钥的方式就可以了。那么这个里面呢,他提到公钥的方式是指开发者将APPID,还有应用程序的私钥,支付宝的公钥配置在代码当中,对请求的内容进行签名,并对支付宝返回的内容进行验签的方法。开放平台的SDK封装了签名的实现,我们只需要在创建一个叫做default阿里k client的对象的时候,来设置请求网关应用ID、应用私钥编码格式,支付公钥,签名类型即可报文的请求时会自动进行签名,所以我们能够获取到的信息呢,就是我们只要创建这样的一个叫做default阿里配client的对象,并且在设置对象的时候,把这些基本的参数啊,签名需要的基本的参数都设置进去,那么我们在进行接口发送的时候,签名就会被自动的生成了,好,这个还是很方便的,所以呢,我们来看一下,下面呢,他们就给我们提供了一段代码,那这个呢,就是生成一个叫做deat阿里配client的这样的一个客户端的远程连接对象,而这个客户端远程连接对象呢,他就接收了一个阿里配腾费这样的一个配置参数,那么我们会发现这个配置参数呢,是在上面的这段。
04:43
代码当中呢,被创建出来的,并且呢,在这个过程当中,它配置了网关,配置了APID,配置了私钥。配置了请求的格式,这次哈,配置了设置了字符集啊,然后配置了我们的支付宝的公钥啊,配置了我们的签名类型哈,这正是我们需要的这段代码,所以呢,我们把这段代码呢,也放到我们的应用程序当中进行一个整合。
05:09
好,接下来我们把它整合到什么位置呢?那么之前呢,我们做了一个配置文件,就叫做阿里配client con,我们直接在这个配置文件当中添加一个并节点就可以了,好,我们在这个B下面呢,去创建我们刚才的这个阿里pay client。这样的一个客户端对象。我们来看一下它的这个叫阿里pay client啊,我们就创建这个就可以了。好,那这个方法的名字呢,我们首先就叫阿里client,然后接下来呢,我们在整个这个方法当中呢,去把这个代码给它复制进去。好,然后最后呢,我们去返回这个阿里佩兰。
06:04
好,这边呢,我们需要去处理一下这个异常,我们呢给它抛出去,好在这个位置抛出阿里配API exception这个异常,那么接下来呢,我们就需要把这个里面的每一项内容呢,给它填充上,那么我们会发现呢,这里面绝大部分内容都是之前我们在。这个配置文件当中配置的一些选项哈,所以呢,现在呢,我们就需要在阿里配client当中呢,去拿到这个配置文件当中的配置,我们直接使用依赖注入resource,然后呢注入。我们的environment spring framework给我们提供的这样的一个对象,看这个哈,我们就可以拿到我们的配置参数当中的所有的内容了,那么好,接下来呢,我们一个一个的来将我们的这个啊配置参数呢获取下来,那首先呢,这个server URL实际上呢,就是我们的。
07:05
阿里支付的这个网关,第2GET cooper,我们把前面的网关的配置项目拿过来叫getway URL,好,然后后面以此类推啊,我们先把这个复制一下。好,然后呢,我们来看一下,嗯。第二个呢,就是PID。那我们复制这个APPID。好,第三个呢是私钥,商户的私钥,所以我们找到商户的私钥。我们将这个私钥的K值呢复制过来。
08:00
好,接下来呢,我们设置一下请求格式,那么请求格式呢,你可以直接写Jason啊,那实际上阿里的开发工具当中给我们提供了一个叫做constant的这么一个常量类哈,这里面提供了一个叫做format Jason的这样的一个啊常量值,它就是Jason,所以我们可以直接用它,然后那同样这个插赛也是一样的,阿里配康当中给我们提供了一个UTF8的这样的一个常量值。我们可以通过它来设置我们的这个字符集,那接下来呢,是设置支付宝的公钥,那支付宝的公钥呢,就是阿里配public key。我们把它设置在这个位置。好,然后再接下来呢,是设置签名类型,那么在阿里配当中呢,他建议我们的签名类型呢,是啊是r sa to啊这种非对称加密的签名的类型,然后最后呢,我们就通过以上的所有的条件构造出我们的阿里佩克兰特对象来,最后我们把它返回。
我来说两句