00:00
好,刚才呢,我们把恢复榜呢已经运行起来了,运行起来之后呢,我们来看我们今天要做的第二件事情就是熟悉我们的文档啊,那大家回顾一下之前咱们在调用阿里云的oss,或者是调用阿里云的啊这个短信服务对不对的时候,我们第一件事情呢,都是在阿里云上呢,去找相关的文档,然后参考文档去做相应的开发,那么恢付宝这边也是一样的哈,那一般情况下呢,像这种第三方的这个平台,或者是啊这个提供接口的这样的一个,呃,这个商家呢,都会给咱们提供啊一个接口文档啊,然后呢,让咱们这个在开发的过程当中呢,用于参考啊,所以恢复宝这边呢,也有一个接口文档啊,这个接口文档呢,刚才也是随时资料发给大家了,我们来看一下。的资料里面,然后在这个第四部分,这个里面有一个呢,还是汇付宝,汇宝里面呢,有个恢付宝商户账户技术文档,商户指的就是和惠付宝箱连接的这样的一些第三这个平台,比如说我们的上荣宝就是属于连接惠付宝的一个惠付宝商户啊好,然后接下来呢,我们把它打开,那这个文档很显然就是给这些商户看的,那这个呢,是商户账号接口技术文档,然后左侧这面呢,就是我们的导航,导航这面呢,大家注意看一下啊,像文档的第一个部分和第二个部分,大家自己课下的时候简单阅读一下就行了啊,这个在课堂上呢,我就不领大家去读了,然后我们主要要看的呢,是这个第三部分的内容,还有第三部分啊,这个里面包含的一些接口,这里面有很多接口。
01:41
那我们在呃,实际这个嗯调用的过程当中呢,会调用这些接口哈,这里面一共有20几个接口吧。但是我们不会所有的都调用啊,就根据我们当前的这个业务实现的,我们调其中的几个,你像什么购买债权啊,这个这个我们都用不上哈,好30几个就可。
02:05
对,这是所有的接口啦。然后接下来呢,我们来看一下这个第三部分的第一个内容就是传参说明,那在真正的对接口进行调用之前呢,我们首先呢,需要对它的这个参数的这个组织形式有所了解,当然了后期我们会啊,就是给大家引入一个工具类哈啊,然后引入工具类之后呢,实际上会对这个参数的组装过程呢进行封装,同样的会对这个啊签名呢也进行封装,所以呢,这一块大家做一个了解就行了啊,但是呢,你你还是需要知道的就是它这里面细节啊,但是这个代码不需要我们自己去实现,因为有工具帮助我们去实现啊,然后呢,我们就来看一下这里面主要说的是什么,第一就是所有的参数的提交方式,必须是post提交啊,然后也就是说远程调用的话呢,我们需要用POS的形式,而且他这个恢付宝这面啊,因为这个恢付宝其实是一个真实的商家啊,真实的一个基金托管平台,然后他他我们这个文档也是在那。
03:07
那个真实的资金托管平台当中直接拿过来的,并不是我们自己编写的,然后呢,我们只不过是对那个恢付宝里面的这个功能呢,做了一个简化啊,因为有一些这个啊,就是监管上的要求吧,我们不能完整的实现,所以呢就直接拿过来了,但是呃,惠付宝这边他们用的这个编码方案是GB2312啊这个嗯,其实呃,作为我个人来说的话,就就不推荐啊,如果大家未来在这个企业当中去做开发的话,你就不要选中这个G边2312的这种编码方案了,因为这个是一个历史原因,这会宝这平台已经就是很就是已经很有一些历史了,然后呢,他在这个不断的呃,这个升级啊,优化啊,迭代的过程当中,他肯定是不能优化它的底层的编码的,这个底层的编码他一旦改了的话,那很多东西就全都有一个非常大的影响,所以呢,既然人家底层之前选择了GB2312,那。
04:08
作为这个架构师来说的话,这种底层的东西你是不能改的,但是如果你作为架构师,你是新建一个项目的话啊,那么就不建议大家采用这种编码方案了,这个大家需要了解啊,如果要是沿用之前的老项目,那么如果老项目是GB2312,也不建议大家去改啊,然后新项目的话,还是要用6TF8的好,所以这个是需要说明的一个地方,那既然我们这个项目就是从直接之前这个真实的恢复网,当这个项目当中移植过来拿过来的,那我们也尊重他原来的这个编码方案,明白哈,就只是尊重人家的编码方案,并不是说这是最好的一个选择啊,所以说这个大家要知道,然后接下来呢,这个,嗯,提交的方式和参数的编码,我们都了解了之后呢,将来呢,我们要知道它参数的一个组装形式,参数呢,它的组装呢是这种形式啊,你会发现它提交方式虽然是post,但是参数组装呢,依然是在URL地址栏当中这个进行拼接的,这是可以的啊,并不是说在URL地址栏当中提交参数。
05:08
一定要用get啊,那在URL地址栏当中提交参数呢,也可以用post啊,这个希望大家知道,那接下来呢,传参时呢,要对参数进行URL编码,也就是说呢,整个你参数里面有可能是包含一些汉字呀,网址啊,一些东西,它作为参数的值,那这个汉字也好,网址也好呢,它都是特殊的字符啊,针对URL来说呢啊就比较特殊啊,有的时候呢,你不进行编码的话呢,它就识别啊,就会出现歧义,或者是干脆呢就没有办法传输,那所以呢都要进行URL编码,那URL编码呢,其实也就是一个Java的方法了啊,最后在我们的工具类当中呢,都会给大家提供啊,所以它会自动的进行编码,所以这个呢,大家了解就可以了,写程序的时候呢,不用我们亲自去写哈。然后呢啊,那么如果采用放表单的形式提交,就不需要参数值,不需要带空格,这个采用放表单的形式提交呢,一会儿啊,其实我们在项目当中啊,第一个这个账户绑定功能就会采用放表单的形式呢,向远程做这个数据的提交,那么这个呢,是一个比较特殊的这个远程提交的方式哈,然后期呢,我们还有这种啊,直接使用http client进行远程数据提交的方式,这些都是远程数据提交的这个基本方案,然后这两种方案呢,我们都会了解,在我们的项目当中呢,都会有应用,当然我们会先选择这种啊,就是这种呢,比较简单,比较直观易于理解的这种方案,好,然后呢,这块是我们所说的全参这一块,然后呢,验签参数S的生成,我我先来说一下什么叫散,散的话呢,就是一个签名,实际上咱们在调用阿里云的这个接口的时候呢,它就有签名啊,但是呢,这个对于我们来说呢,就透明。
06:59
听话了啊,因为阿里云咱不是引入了阿里云的那个依赖包嘛,啊,阿里云的依赖包呢啊,它的SDK吧,我们管它叫他把所有的这个签名的过程呢,他都给封装起来了,所以呢,实际上是有签名的啊,但是呢,不用我们去关心啊,那这个签名是什么呢?这签名是这样,我简单给大家说一下,就这面呢是我们的。
07:21
上荣宝,然后这边呢,是我我们的恢复宝啊,我们的上荣宝呢,向我们的恢复宝发起一个请求,那我们恢复宝呢,就会接收这个请求,那么接收这个请求的过程当中呢,他就会处理这个请求,但是处理这个请求的时候呢,他没有办法分辨给他发送请求的这面是否是恶意用户是吧。有可能是一个恶意用户。恶意用户啊,那如果是这个恶意用户的话,那啊恢付宝这边怎么去分辨呢,对不对,所以呢,他和商城宝这边呢,就约定了一系列的这样的一个,呃,这个就是暗号似的这样的一类东西,比如说他说那你咱们来个暗号,这个暗号叫什么呢?叫12345。
08:09
对吧,你暗号叫12345,然后你这边呢,把12345传给我,我一校验诶是12345,那么我就把这个请求就给你处理一下,然后把响应给你,就说明呢,咱俩暗号对上了,明白吧,啊好,但是呢,12345这个暗号有点太简单了啊,你这你人家一旦破解了,人家给你发个12345,你这面一破解,你是不是就也是没有办法去完全有效的防止这个恶意用户呀,所以呢,那这两边就约定啊,我们定一个暗号叫12345,但是你不能把12345直接发给我,咱们再定义一个,就是私下里定义一个,把这个12345呢进行这个啊这个啊就是转化的一个方式,比如说给他。封到装到一个信封里,对吧?啊,然后呢,信封外面呢,我再设置个这个拆信封的密码,然后呢,你把这个用这个密码把信封拆开,拆开之后呢,看看里面是不是12345,如果是的话,那么咱俩这个暗号就对上了,如果不是的话,那么这个暗号就对不上啊,所以我们管带着密码的那个信封啊,我们就管它叫签名啊,你可以把你可以这么理解,所以呢,那就意味着我们要将12345进行一系列的封装编码啊,等等等等一系列的处理,处理完了之后生成一个签名,明白吧。
09:29
我们用这个1234生成一个签名,然后把这个签名发送给谁呀?啊,随着这个请求发送给。也就是说这个地方呢,是有一个签名的。把这个签名随着这个请求发送给这个啊,我们的惠付宝这面,然后恢付宝这面,得到这个请求之后,他先干嘛,他先别着忙去处理这个请求返回结果,而是先做什么,先校验签名好,然后他怎么去校验这个签名呢?那么他生成签名的过程和他校验签名的过程是一样的,也就是说他就告诉他说,哎,我告诉你怎么生成这个铅名啊,你呢,先把这个12345呀,给我倒过来,变成54321,然后接下来呢,54321每一个值呢,再给我加个一,变成665432,然后呢,加完一之后呢,后面再加个时间戳好,你给我放到信封里,信封设置个密码,密码呢叫做AAA,好,你给我传过来,然后接下来呢,这面他校验签名,他怎么校验他呢,就把这个。
10:36
而且呢,他要求把12345这个原始数据也给他传过去,好,然后他校验签名的时候,他怎么校验,他就把这个原始的这个12345这个数据呢,也倒过来变成54321对吧,变成5321之后呢,它又加上了个一,变成65432,好也就是说他俩会约定一个共同的这么一个生成签名的方案,然后这面怎么生成签名,这面就怎么生成签名,生成完签名之后,然后接下来呢,他再上这个信封里面,他就知道啊,这个密码是AA,好用AA把信封打开,看看信封里面装的这个65432,和他自己这面生成的65432是不是一模一样的,发现诶是一模一样的,就签名校验成功,明白吧,啊所以这块呢,就是整个一个校验签名的过程,我不知道大家理解没有啊,也就是说不但要啊这个约定一个暗号,还要约定呢,怎么把这个暗号进行转换,然后。
11:33
接下来呢,我这边呢,把这个呃,用咱们之前约定的暗号和相同的转换方式呢,把这个暗号进行转换,转换完了之后发现我的转换结果诶和你的转换结果一模一样,那就说明什么,说明咱这个暗号对上了。明白吧,啊,所以这个就叫签名啊,这就叫签名好,然后呢,接下来呢,这块说的就是这个签名怎么生成的这么一个过程,就是你怎么把12345进行各种转换放到信封里的一个过程啊好,那所以呢,首先第一就是组成加密串,怎么组成加密串呢,所有的变量按照参数名升序,并且呢,用这个符号连接,也就是说我们从我们的这个上容宝啊。
12:17
向这个恢复宝呢,发送请求的时候啊,刚才不是说了吗。要传递参数嘛,而且这个参数不是要放在这个后面嘛,是不是,所以说呢,它就是这样的一个原理,就是比如说我发请求要传参,传参一个是AB,一个是,然后他说怎怎么怎么弄,先组成加密串,所有的变量按照参数名啊,然后升序,按参数名,参数名AB啊,那就升序,升序的话那就是AB,然后竖线B对吧。这样。升序并用竖线连接,然后最后连成什么呀,最后。所有的变量值按照参数名啊,最后连接好3P好,他说的是所有的变量值按参数名,那也就是说参数名是AB,变量值是什么?一和例四,所以呢,那我们连的是一和理四,明白吧啊,也就是A对应的值是一,B对应的值是李四,所以呢,这就是所有的变量值按参数名升序,然后连接啊这这是升序连接,然后接下来呢啊。
13:29
最后连接3K,最后连接最后连接这个签名,然后再加上签名,好你先知道这个约定,然后接下来呢,加密采用32位的MD5啊小写,然后编码呢,UTF8加密,然后也就是说例子呢,是假设接口AB等于一等于张三C等于这个指派给商户的签名密钥是这个啊这个就是刚才我说的这个签名是初始签名啊,就是刚才我说的那个12345,明白吧,啊好,这是初始签名,好那所以呢,按照刚才咱们的这个约定连起来就是一杠四杠12345,那按照他这个文档当中的例子,连起来就是一杠张三杠,然后这个13012345678杠,然后呢,这个是3K123456789,这样连起来。
14:27
明白这意思吧,啊,所以这个就是咱们说的远程请求要传的参数,然后这个呢,就是咱们刚才说的那个原始的那个签名啊,就是我说的那个12345这个签名啊,就是他啊,然后他这里面给的例子是12348,好把他们先连起来,连起来之后呢,接下来加密啊,直和对加密直和对实际上就是。把这个把这个内容啊给它进行加密,把这个整个的内容放到这个里面啊,放到这个MD5这个里面,然后给它加密,把加密生成这样的一个串啊,它其实这个文档啊,写的也不太严谨哈,如果严谨的话,就这样,这个相当于把这部分的内容放过去,明白这意思吧,啊,那这部分内容放过,然后呢,对它进行加密,加密完了之后呢,不就生成一个呃,这个串嘛,啊好,然后接下来呢,所有的字段呢,都用驼风形式,如agent ID,然后agent ID,也就是说你这个啊传参的时候,这里面不有好多参数嘛,啊这个参数呢,都用这种形式去传啊,如果你这个有下划线的话,那么传的时候呢,把它变成这个啊,就是驼峰形式,因为它这个文档当中给咱们的这个都是下划线的形式啊,这个文档当时人家恢复。
15:52
吧,可能公司里面就这么约定的,说写文档的时候都用下发线写,但是实际上传的时候,他的要求是让你们这个东西传。
16:04
用这个东西传明白吧,啊,就是它文档是下发线写,但是咱们Java代码当中呢,要用这种形式传,这个是需要大家了解的,这是它文档当中的一些约定啊,好特别的感恩,然后呢。这块是一些就是传餐说明这个大家简单了解一下就行了,如果你还是就是对这个感觉不是特别清楚的话,一会我们具体的在走代码的时候,咱们再把这个部分的内容呢,再详细的捋顺一遍,好吧啊,所以代码呢,可能比这个文档描述的能够更清晰一些啊,以这个文档这块呢,大家着重了解这块签名密钥的生成,它如何生成的就行了,那当然了,这面呢,是我们上荣宝这边采用这种方式呢,去生成签名,然后那个惠付宝那面呢。恢付宝那边呢,我们就用同样的方式也生成签名,然后对这个签名呢,进行一个校验啊,是这样的一个过程,所以大家要知道整个这个就是我们最终生成的这个sign啊,所以我们最终是要把这个啊,这个就相当于刚才我说的啊,就是那个带密码的信封是不是啊,然后发送给我们的恢复宝啊,然后恢复网那边呢,会对这个东西进行校验啊,进行校验好,然后接下来呢,我们来看一下啊,返回和通知结果这一块啊,所有需要同步返回的都是通过放表单post给return UI啊,诶这是什么意思啊,这句话呢,实际上。
17:32
嗯,对于我们现在来说呢,不太好理解,但是你一定要硬着头皮去看,就是这块其实也是提醒一下大家,未来你们到公司当中啊,有一些接口文档你看不懂的时候,你就先硬着头皮先把它看下来,并且反反复复的给他读几遍,争取呢在头脑当中有大致的一个印象,有个痕迹在,然后后面咱们再写代码的时候,可能有一些东西就会啊,就是逐渐的清晰啊,但是你前期要对这东西有印象,否则的话,后面你写代码的话,你对照不上,你不知道哪个代码是对照这句话的。
18:05
明白哈,所以呢,要做到这个先能够就是通过阅读文档先熟悉里面的一些基本的词汇啊,就先把这些资本的词汇先放在脑子里好,所以这个里面呢啊,就是有涉及到的,就是叫做同步返回,然后那个phone表单POS提交,然后呢,这里面还有一个叫return URL的这样的一个值啊,所以这几个词大家先记住啊,你先别管它是什么意思,然后接下来呢,需要异步通知的,所以这里面既有同步返回又有异步通知哈的所有参数都经过UR code并post给notify ul,所以这里面又出现一个单词叫notify ul,一个呢叫return ul,一个呢叫uify ul,那么return ul它和同步返回相对应。Not fair ul,它和异步通知相对应,所以这两个关系大家先搞懂,你先别管它到底是干嘛的啊,总之你先记住,同步它涉及到有一个return UI啊,异步它涉及到有一个not five UI啊,好,编码均为GB231,好读到这之后,我们所能够了解的其实就是这样的两句话而已,你并没有实际有什么感受,对不对,这是正常的啊,再硬着头皮往下读,然后异步通知签名参数sin的生成规则啊,加密字符串由所有恢复宝变量值按照恢复宝。
19:32
这个参数签名声序连接,最后连接三三什么三,其实他这句话和我们这个是一个意思,他就是写文档的人,他就偷懒,他就懒得写了,他就用了两句话来表示,实际上和这个是一模一样的意思,那这是什么意思呢?我先说一下,到底什么叫通知啊,是这样的,就是这面还是我们的,还是我们的上容宝,然后这面呢,还是我们的恢复宝,好吧,啊然后呢,我们的商荣宝不是之前给这个恢复宝发了一个请求嘛,然后恢复宝这边不就处理嘛,好它处理的时候,因为这个请求呢,我们发过来之后呢,是一个异步请求,好,然后他就处理,它处理的过程呢,那这面怎么才能拿到结果呢?因为它是异步的嘛,不可能这面就不可能说等着这面返回,所以呢,他自己处理他自己的,他就干别的去了,然后当他这面处理完了之后,他又会给尚荣宝发一个请求。
20:32
就是也就是说这面处理完了之后,并不会直接给他响应,而是他这面发送一个请求,重新启动一个请求发送给商人宝,这面是request,好,那么他发送给商荣宝的时候呢,商荣宝呢,要接收汇付宝的请求呢,他也需要避免汇付宝这面是一个恶意的用户来给他发请求,所以呢,惠付宝这边呢,也要生成签名给谁呀,给上了宝,所以呢,我们就知道了,生成签名的过程既要在。
21:05
汇付宝这边做啊,这个既要在上荣宝这边做,然后校验签名的地方啊,既要在汇付宝这边做,那么生成签名也要在这边做。校验签名也要在这边做,能理解吧,也就是说再说一遍啊,首先我们的上荣宝向恢付宝发起一个请求,可能是是用户绑定的请求,可能是充值的请求,可能是放款的请求,可能是啊这个这个呃,那个提现的请求等等等等啊,可能是申请借款的请求啊,总之是我们的汇付宝向上荣宝啊,我们的上荣宝向这面汇付宝会写一下,对面是上面。然后这边是惠宝。好,总之呢,是我们的上荣宝向这边的会付宝发起的请求,这个请求呢,一定要先生成签名,然后这边呢对签名进行校验,校验成功了再执行好,那么这边执行完了之后呢,他呢会向我们的上荣宝呢,再发起一个回调请求,也就是说由恢付宝主动发起,向尚荣宝发起,那么这个请求呢,因为是尚荣宝接收汇付宝的请求,那么他也要去考虑汇付宝是不是一个恶意用户,所以呢他也需要签名,所以惠付宝这边呢,也要生成签名,然后给上人保这边,上人保这边呢也要校验签名,就这样的一个过程啊,所以他俩是相互的,无论是谁给谁发请求,都要先生成签名,无论是谁接收谁的请求,都要先校验签名,好,这个流程大家了解,所以这块呢,他要写的是这个异步通知签名生成规则,所谓的异步通知就是从刚才们的恢复榜,像上文榜去干嘛呀,去发起回调请求啊好,然后呢,接下来呢,也。
22:56
也是要生成这样的一个签名,这么一个过程,跟这个是一样的啊,所以这块大家先对这两个文档当中的内容进行了解就行了,这个呢是基础的文档部分的内容,这两部分的内容呢,在所有的后面的结果当中都会用到啊,所以一个是传参,参数怎么传,签名怎么弄,第二是结果啊,结果这面呢,我们是通过notify URL啊,然后去这个有结果了之后发通知啊,是这样的一个情况,那具体怎么发通知,Notify URL到底是什么,一会我们再说,总之呢,大家先了解到这块,然后另外呢,就是如果我们这个请求的话啊,我们传餐是需要组织签名的啊,我们通知的话,我们传餐也是需要组织签名的,好,这是3.1和3.2部分的内容,那么从3.3开始呢,就是接口了,所有的接口了,3.3 3.4 3.5 3.6,一直到3.34,他们所有的接口都有相同的传参说明和返回通知结果说明。所以。
23:56
那后面所有的接口都会满足这两个条件的啊,所以这个大家要知道,所以这个是对于文档的一个说明和阅。
我来说两句