00:00
好,最后呢,我们再来看一下这个图啊,这图呢,就是用户在我们的上荣宝的平台发起一个啊数据的表单的这么一个填写对吧,填写之后呢,点击开户啊,那这个地方就相当于在这个平台上点击开户,是不是就提交信息啊,那这个时候信息提交到哪,提交到恢复吧。好,惠付宝这面呢,我们就给用户展示了一个页面,这个页面是什么呢?我在这个地方呢,把这个流程呢,又给大家完整的截了一下图,这流程就写了一下,也就是说在上荣宝这面,我们填写这个信息,填写完信息之后呢,然后呢,来到了这个汇付宝的这个页面啊就是呃这个他说呢,他要跳转对吧?好跳转完了之后呢,就来到了惠付宝这个页面,好,惠宝这个页面当中呢,我们就输入这个手机的验证码,然后输入呢,你的初始密码,好在这个地方点确定,那所以就是这块了。点完确定之后呢,那么这个时候啊,我们的汇付宝呢啊,与此同时会向我们的用户发一个短信,当然这个我们还没发呢哈,好,然后接下来呢,呃,会来到一个汇付宝的一个数据绑定成功页啊所以呢,就是这个地方。
01:19
这个页面对吧,来到汇付宝的数据绑定成功页,好在汇付宝的这个数据绑定成功页上呢,我们就点击,点击什么呢?点击这个返回平台对吧?好点击完返回平台之后呢,我们就。就来到了,又来到了我们的上荣宝的这个平台啊,那这个流程就结束了,但是实际上在这个返回平台之前,就是因为你真正点击这个。啊,这面啊,你真正点击这个按钮的时候呢,啊,实际上它是有一个时间时间的这个延迟的,因为你把鼠标放在这块再点一下,他肯定是有,他肯定是有这个时间延迟,对不对。
02:00
好在这个过程当中,实际上这个汇付宝这面呢,已经向我们的尚荣宝就发起一个远程回调请求了,那这个回调请求呢,我们就管它叫异步通知,他通知什么呢?通知我们的上人宝说我这边已经绑定成功了,你看你那边是不是需要做一个数据同步处理啊,那么同步什么呀,就同步我们上堂课分析的这些东西啊,把user info里面的这个字段和user band里面的这个字段呢,和恢复宝里面的相应的字段呢做同步,那这个时候呢,我们的上融宝里面,我们就应该去开发这样的一个接口,所以接下来我们要做的事情就是开发这个接口,好让汇付宝这面绑定处理完了之后,对我们发起调用的时候呢,直接就能够对我们的这个用户数据呢,做一个绑定处理啊,那具体的流程呢,就是修改这些数据记录。好,接下来呢,我们就来看一看怎么样去啊,对我们的。啊,这个。呃,数据库表里面的这些相应的字段去做处理啊,然后呢啊,我们就是来到这个回调接口实现账户绑定这一块啊,前面这第一部分内容呢,就是绑定步骤总结,刚才我也给大家走了一遍这个流程块,好第二个步骤呢,就是我们的上升保回调接口这一块,那我们来看一下,在user band controller当中,我们来创建一个回调方法,而这个回调方法呢,我们一定要注意它整个的URL地址一定要和我们的。
03:33
恢复宝里面已知的那个notify URL保持一致啊,所以我们恢付宝里面的这个notify URL是什么呢?我们来看一下,就是它好完整的地址呢,就是local host API car user band notify,所以现在我们写的这个接口地址一定最后结尾是notify啊,好,所以我们在user办的这个controller下写一个notify这个地址。好,然后接下来呢,我们在user band controller,也就是整个这个叫API user b吧,下面写一个not five,就是刚才我们看到的那个he at。
04:11
Post market。他也是以post的形式来发起的请求啊,里面所以呢是notty five。啊,然后上面这个呢,是at API operation,然后这边呢是。账户绑定异步邮。账户绑定异步回调好,然后这边呢是public。注意我这边的返回值是一个string啊,这个string是什么呢?是恢复宝那边要求的,也就是说在这个地方我们看啊返回通知结果这一块。嗯,下面啊,他说呢。
05:00
啊,用post是吧,啊放表单post需要异步通知的,我看一下啊,他在哪呢?他在哪写。再往下顺序图。账户绑定请求。啊,这块一不返回,一不通知这块,嗯。看看啊。搜一下。看他的文档里面啊,好像是。啊,他的文档里面实际上没明确的写这一块内容啊,那么如果他文档里面没明确写的话,那现在呢,我们来说一下,就是我们必须在这个方法。
06:02
去返回一个string,因为这个实际上是恢复宝里面的要求,但是他在文档里面写,他在哪体现出来的呢?它实际上是在它的这个源代码里面体现出来的啊,我们啊通过他啊发一个请求给呃,尚荣宝就是这明。这边是上荣宝,这边是惠付宝,然后恢复宝呢,要给这个尚荣宝发一个请求,对吧,这就是我们刚才写的这个一不回调的接口,然后他需要我们上荣宝给他发一个返回,返回什么呢?返回success。Sus啊,如果你返回的不是success,那么它就会重试,上堂课我记得给大家看过恢复宝,它因为没有成功的调用到我们的上文宝里面写的接口,因为我们没写对不对,所以呢,恢复榜里面是不是发起了五次重试啊,大家还记得吧?好,为什么会发起五次重试呢?因为我们这边没有接口啊,没有接口就没有响应啊,没有响应那响应就不肯定不是success都没有,对不对,所以他什么时候不会发重事,他要接收到上荣宝给他的响应,并且响应的结果必须是success,那么他才会停止重试,否则的话,他会连连发五次啊,五次不成功,那他就停止了。
07:21
啊,所以呢,我们就需要返回一个success给他,明白吧,啊,虽然在文档当中没写,但是大家要知道这件事情啊,那回头如果有经历的话,大家可以自己去看会宝当中的代码,那你会发现他这样的一个。很记载的,那现在我先不领大家看啊,后后面我再领大家看这个代码,然后接下来呢,所以我们就要返回这个叫no。然后接下来呢,Notify的话呢,就是我们要接收恢复宝给我们发的请求,他怎么接收呢?请求的这个参数在哪呢?它会封装到http request里,然后request参数呢,会被封装到request里面,也就是说恢复宝。
08:06
这面是上荣宝,这面是汇付宝,惠付宝呢,会给我们发一个远程调用啊,然后我们这面通过什么来接收惠付宝给我们传的参数呢?就通过这个request啊,来接收惠普宝给我们传的参数,惠普宝给我们传的参数是什么呢?注意就是这个文档啊,前面不是说过吗?这个文档里面是不是有。两个表格啊,第一个表格是尚荣宝给汇付宝发请求传的参数,第二个表格就是汇付宝给上荣宝发请求,发回调请求传的参数,所以说刚才那个request里面会封装所有的这些内容。啊,那我们就需要把所有的这些内容从request里面拿到,然后呢,做一个签名的校验,然后呢,再做其他的事情,明白哈,好,然后所以呢,我们来看一下,就把这个request拿到,Request怎么去把这个里面的这个内容都给它解析出来呢?前面我们引过一个叫做request。
09:04
叫做request helper的类,这个request help的类在哪呢?我们早上引的这个地方,这个地方啊,然后里面呢,有一个方法叫做Switch map,就是把我们接收到的这个request啊,然后点get permeter map,它呢能够得到一个map型的一个建制对,它会把请求参数里面的所有的请求参数呢,都以建值对,也就是哈希的形式给你转化出来,转化出来之后呢,我们通过这个Switch map这个方法,它呢能够帮助我们把哈希形式的这样的一个map和string这样的一个数据类型呢,转化成string和object,就是把string和string啊转化成string和object,因为我们那面拿到的结果第二个值呢,它是这样的一个数据类型,它会把这个呃,这个所有的参数呢,都存在这个字符串数组里面,我们需要呢,把字符串数组里面的这个值。
10:04
的第一个值,因为它数数字出数组里面只有一个值,只有一个值啊,就是数组里面只有一个元素,数组里面的这唯一一个元素就是我们的建筑对当中的值,我们需要把这个元素拿出来,直接放在我们的这个object里面就可以了啊,也就是说我们简化它的这个啊,数据存储的啊,这样的一个形式啊,直接把它转化成这个形式,由这个形式转化成这个形式,那你说为什么就是这个形式呢?这个我们别纠结了,它为什么是这个形式,恢复宝给他们传过来,它就是这个形式,我们就是需要把它方便的存起来,或者是方便的访问的,所以我们就需要把它转化一下,明白吧,那恢付宝具体为什么给他封装成这个格式,那一定是人家那边封装成这个格式方便了,对吧,他就直接封装,封装好了就咱们就给咱们,但是咱们不方便,所以咱们就给他转化一下,明白这意思吧,啊所以呢,我们把这个给它转化一下,转化一下之后呢,就把它变成这个map。
11:04
然后你写一下啊。好,这样写吧。就把它变成map了,那这个map呢,其实就是p map就是嗯是嗯,贵妇宝那边给咱们传回来的参数啊,贵妇宝向上游的发起回调请求时携带的参数。明白哈,就都在这个里面了啊,都在这个里面了,然后嗯,接下来呢,我们可以嗯将这个参数啊就打印出来,就是假设说你想去调试一下的话,那第一种方式就这块是个断点对吧,然后到这断点的时候看一看,还有一种方式呢,就把参数打印在日志当中,也可以哈,log.in付,然后这块呢,就是。
12:00
啊,用户或者是说账户绑定异步回调接收的参数如下,好,那包括什么呢?我们看它以这个字串的形式打印出来,刚才我们不是引了一个上午,你不引了一个Jason吗?直接用它也可以to Jason string,然后PA map,好就把它呢转换成字符串的形式给它打印出来,这样的话呢,我们看起来呢,会方便一些啊会方便一些,好然后接下来我们呢,先return一下,Return,只要我们给汇付宝那面return了这个success,那么汇付宝那面就不会干嘛呢,就不会发起重试了,就不会发起重试了,明白哈,所以接下来呢,我们先做这个步骤看一看呢,我们的。
13:00
这个回调会不会被汇付宝成功的调用,而汇付宝如果成功调用了之后,是不是它就不会再一次的发起重试了,所以我们要关注的就是会付榜,一会儿我们测试的时候,我们要关注的是会付宝这个控制台当中,它有没有一个日志说我的请求远程请求已经成功,并且没有重试,对吧?好,我们来看一下啊。那么呃,在上荣宝这面,我应该是重启了,我再重启一遍啊。重新启动一下。好,这边呢,我已经,嗯,启动成功了,启动成功了之后呢,咱们来看一下。
14:02
先把这个都清一下啊,这都清一下,然后接下来呢,我们这面呢,再来绑定一个用户,那我们再绑定用户的话呢,我们看一下数据库啊,都有谁,好像我们只绑了一个吧。绑的是那个。啊,两个都绑了哈。Us us band里面有两个,然后接下来呢,User。我看一下惠福宝这里啊,优尔看的惠宝这面有两个对吧,还有两个,那现在呢,我们先把这个啊,他绑的这两个呢,先给它删掉好吧。那删掉的话我们怎么删,首先惠妇宝这面的U办两个全删啊,两个全删,惠妇宝这面的user account2个全删,就是把之前我们绑好的数据给它还原。然后接下来呢,上荣宝这面怎么还原user里面创建记录了,所以两个都删掉就可以了。
15:04
好,其他的事情我们还没有做啊,所以呢,接下来呢,我们再重新的去做一个测试啊,这一次我们测试的目的呢,就是看看我们的请求回调啊,有没有成功的被调用好,现在我们来看一下我们的用户是谁。6630这个用户啊,行就用它也行,然后呢,就是好,然后接下来呢。好,银行名称,民生银行卡号。好,然后接下来呢,是预留手机,然后接下来呢,我们点击这个开户啊好,点击开户之前呢,我先来去把它清一下,然后这面呢还是清一下啊,然后现在呢,我们来点击立即前往。
16:03
好,点完立即前往,这边呢,我们123456,然后这边呢,123456对吧,啊都差不多,然后点确定好,此时此刻恢付宝应该向我们的上升宝发起回调,大家看在这个地方就已经发起了,而且后期没有说重试什么12345,他只试了一次COUNT1就success了,看见了吧,他接收到了success之后,就说明他接收到了正确的应答结果,那么这一次的回调就发起成功了,并且我们的回调呢,已经在我们的上文稿这面已经打印出来了,我们的尚荣宝这面呢。看这面就是参数如下对吧?账户绑定异步回调接收的参数如下,那我们接收的参数呢,就是这些就是恢复宝给我们发过来的,包括什么呢?Agent user ID result code sign find code result message和time step,你看是不是就是文档当中说的这些内容啊,文档当中啊E不回调是不是result code result message find code isn't user ID time step和sign就是这几个值啊,所以我们在这边接收到的也是这几个值,所以说文档当中的那个步骤指的就是这个步骤了,文档当中的那个表格指的就是在这个地方所接收到的参数了,那大家想一想,我们在这个地方如果已经接收到参数了的话,是不是可以拿着像比如说八的扣。
17:26
对吧,把这个刚才我们说的这个值是不是就填充到这个相应的表当中啊,填充完了之后,那么这些状态我们是不是就可以给它改成已什么呀,已绑定啊好,那么它绑定是否成功呢?来源于这叫result code等于0001啊result code0001呢,在这个地方我们可以看到。他说如果0001的话呢,就是绑定成功且通过实名认证啊,如果是后面的这些的话呢,就是绑定没有成功,所以那恢复网那面如果给我们返回这个值,就说明绑定成功了,所以我们就判断它就行了,如果绑定成功,我们就做后续的操作,如果是失败,那我们就不做绑定操作了,明白吧?啊所以这块呢,是我们创建异步回调接口的这样的一个过程。
我来说两句