00:00
如果要是我写的话,我就照着那个呃充值,或者是照着那个绑定账号,把这玩意一考,然后里面改一改对吧?啊,那我现在直接就考虑交接口就来了,你找以前的就不一样的,嗯,这面呢,我就嗯上手表这里,然后呢找到啊把它拷到那个烂的it control。所以还是刚才的那个controller API烂的item controller咱们写刚才那几个,然后呢考来考来之后呢,其实就做这么几件事情吧,这个肯定是汇付宝像像我们发起的远程调用了,然后接下来呢,在汇保远程调用过程一样是第一件事情,先从request子当中取到惠付宝用我们的回调参数,对吧?啊,然后接下来呢,这块就问清啊,然后惠付宝那边呢,它的看一下文档,汇付宝这边呢,他这边说我给你的回调,这呢回调通知0001是投调成功,那么我们在这个地方你可以判断0001啊,如果和嗯这边叫result code的对吧,如果和它一致的话,那么我们就认为呢,这块是投标成功了,如果投标成功了,那我们就投知啊,然后其他的场景你看到吧,你想不想让他去?
01:31
呃,反复的去这个这个重试,你要不想你就给他写下,你要想你就给他需要啊,所以这块就是根据未来咱们的实际情况来考虑就行了,现在咱们就考虑这个的情况,然后这样的话呢,我们把这个给它生成一下,然后呢,再加answer planet,好,那在这面呢,我们就来实现它的这个notify了,那么它的这个notify呢,刚才我们已经分析了,要做的事情呢,无非就是嗯,把我们的这个。
02:08
本地的这个账户信息给他做同步了,是不是啊,所以呢,就是就是做两件事情,修改账户金额,那我们修改账户金额就是从余额中减去需要这个投资的金额,在冻结金额中增加需要投资的金额,对吧?嗯,从余额中减去投资金额,然后再冻结金额中增加投资金额啊好,然后接下来呢,还有一件事情,就是刚才咱们写的时候。
03:00
这个上了网啊,这个item的时候,刚才我说到了,呃,这个里面呢,是有一个。这个里面呢,是有一个状态字段的,这个状态字段呢,它默认情况下,刚创建出来的时候,它呢是零交换认,一旦啥叫已支付,就对金额已经成功的冻结起来,那为你输入支付密码,金额就冻结了,一金额成功的冻结了,那么这个状态计算就变成,所以什么时候金额成功的冻结呀,就是在回调当中修改完账户信息,金额就成功要冻结了,明白吧,那只要他修改完账户信息,我们这边呢,就直接修改投资状态啊好,那所以呢,这是修改投资记录的状态,然后并且呢,我们的标的,大家记不记得我们的标的标的这个页面当中。
04:07
标题页面当中有一个叫已投金额和已投资人对吧,我们这一个人这一个呃,投资人他成功的进行一笔投资,并且账户已经被冻结的情况下,就证明当前的这个标的已经有一个人投资了这么多钱了,那所以呢,我们应该把标的信息里面的这两个字段呢,也给他做一个修改啊好,那所以呢,在我们这个代码当中。就除了修改上面这个,还要修改标记记录,然后修改标记记录的是什么呢?投资人数还有已投金额这两个值啊,我们的这个标的需要修改,那最后呢们还要做一件事情,就是新增交。
05:10
交易流势就是哪怕你这笔是冻结的金额没有真正的,还没真正的做转账呢,只是说我要投资是吧,最后放款的时候才真正的从你的账户当中转给这个借款人啊,但是现在是冻结,那冻结他也要有交易流程啊,要把这个冻结的这个流程详细的去给它写上,所以说呢,这块呢,是这个方法当中呢,我们要做的这样的几件事情,然后呢,因为这个是一个回调,这个回调的话呢,我们也有之前的回调的困扰,就是密等性,大家回调有可能回调响赢失败,然后人家汇宝那边以为咱们没成功的响应呢,就又给咱们发一次金额,就相当于又执行了一次回调,又执行了一次回调,大家想账户金额是不是又减去投资金额,冻结金额。
06:10
又增加了,那就不行了,这个这个还好,然后投资人数是不是又加了一个已投金额就翻番了,这个也不太好对吧?啊,然后新交易流水是又增加零的,所以这个步骤这个步骤这个步骤在密等性不满足的情况下,被重试的时候呢,都会被重复的执行,所以这肯定是不行,那不行的话呢,我们也要判断它的逆的性范围啊,就前面呢,还要判断逆的性大火。好,所以呢,就做这样的几件事情,判断B点性返回,我们说呢,就判断新增的这个交易流水增增加,如果新增的这个交易流水增加了,那我们呢,就认为这个是拟性,呃,就是重重试了,对吧,我们就不再往下执行了,如果这个交易流水呢,我们查一下没增加,那么我们就继续往下执行,就说明这方法曾经没被调用过啊,那这样的话呢,我们怎么样去获取到这个交易流水呢?它呢实际上就是我们,呃要存一个这个,我们根据这个值来来获取这个交易流水吧,嗯,之前好像是有一个方法吧,咱们之前写过吧,在哪里写过来着,在充值里面写过吧,充值是是哪个API来着,嗯。
07:37
黑色,看着吧。对吧,这是充值,这是充值,这不是充值的回调嘛,对吧,然后充值的又处理在那这吧,啊就是判断验签,这是判断结果,然后这个是业务处理,业务处理的第一步是不是这个就是查找交易流水,明白哈,所以呢,这个就是查找交的流水,它拿过来就行。
08:04
把它拿到。拿到这面好,然后呢,你要判断一下,或者说你要看一下文档,它这个呃呃是那个叫恢付宝里面有没有这个参数是吧,或者说这参数是不是叫用一个agent的,对number啊,找一下文档同步返回业务通知,就是3.4,呃3.10这里面的,然后呢,它是有一个agent备后number本的,就是什么叫商户订单哈,就是无论商户向汇宝发起什么请求都叫一个订单,发起充值请求叫一个充值订单啊,发起用户绑定请求叫一个绑定订单,发起一个投资请求叫一个投资订单,那之前我们做投资的时候,实际上给惠普网的传了一个投资编号,就这个编号。哎,不是哪等一下投资啊,这呢,这个编号叫agent number叫订单编号,这是一个投资订单编号啊,这个订单编号针对于每一笔投资,在惠宝那边都是接收了一个每一的这么一个订单编号,然后最后呢,会宝那边响应给我们的时候,他要把这订单编号给我想回来了,所以他应该是哪个接口,我看一下啊,看一下咱们那个提交的接口叫这个叫user agree user挑咱们找一下。
09:38
特付宝啊,然后呢,叫做user是吧,User。Agree use project对吧,是他吧,啊,所以这个呢,是刚才咱们做提交的时候啊,对吧,Agree use vote project,就刚才做提交的时候的这个方法,这是它啊,然后这块呢,是做动结金额好,然后回头它,呃,就是这个回调,回调呢它应该是。
10:11
应该是哪个?回调它是不是应该从惠付宝这个里面走,它的页面对吧,先看一下这个页面是吧,UC啊UC。从汇复完走到这了之后显示镜面对吧,然后呢,我们来看一下啊,User in west in index是这个页对吧,这个页里面它最后把所有的这个参数信息,像我们之前说的这个给它遍利出来,便利出来隐藏到,然后最后再往哪去交,是不是往user这个地址提交,所以我们要看user啊user这个是user invest,然后invest是他吧,这个就干嘛,是不是做什么呀,比如说做。
11:07
就刚才我们,呃,投资的时候,跳到会付宝页面当中之后,是不是他让咱们输入密码啊,输入支付密码,那这个地方就是校验支付密码啊,然后这个地方是干嘛,这个地方就是投资啊,所以这个地方其实就是做金额的变化呢,嗯,对金额做变化我们找片段吧。找一下啊。This safe,这user lock对吧,这块有个叫什么lock,一个方法,这个lock是啥?点进去看一下。是不是给一个account冻结金额呀,这不可以帽子嘛,对吧,你仔细去读这个呢,因为这不是咱们上课就不讲了,好其不包含这个蓝截,其实这个代码平该你看就知道这口就行,但是有信趣的学可以看一看,这块就是做冻金额冻结的,为什么我们那个amount里面的金额减少,就是因为在这个地方先从总金额里面先减去需要冻结的金额,然后又设置回amount,接下来呢,把需要冻结的金额又设置给冻结金额,所以那个amount里面的10万就减去了1万,对吧,变成9万了,然后这个值呢,就加上1万变成1万了啊这块是做减法操作的,然后这块呢是重新设置的,所以这块是做的具体的冻结那个步骤,好,然后呢,他除了做冻结那个步骤之外,还做了什么,还好像还做了这这这次C什么user以外the service,然后往这一点。
12:49
他好像做了一个方,这个是艾就做了一个保存方法,所以这个里面你就可以看到汇不宝他做了什么事情,他除了做了刚才我们所说的这个金额由这动到这了之外,还添加了一个user event,就通过咱们刚才分析得到了,对吧?啊所以这个U外里面呢,就是有这个投资信息吧,比如说啊,投资人是谁,借款人是谁,然后项目的这个流水编号是什么,项目的名称是什么,然后这一笔投资的订单号是什么,就是这一笔投资啊,所以他在这面生成的这一笔投资的订单号存储起来了,然后加来呢,这个就是嗯的此次投资金额是啥,对吧?啊,然后总的相同的金额是啥,然后剩下于其他的这个是吧,所以这块呢,是汇宝当中做的内容,然后当我们的上城宝当中的时候,还。
13:49
他会访啊,他呢就把这些内容给我们组织成一个回调参数,就是上面这块,他校验完了之后,投资完了之后,冻结完了之后,然后呢,他就组装回调参数,它组装的回调参数里面了,其中有一个agent Bill number,就是刚才从咱们这个investment里面生成的agent number,再看一眼。
14:15
Agent number我看一下啊。啊,我看看啊,Agent number user,看一下agent number。的数据是从哪来的?是不是从我们给他提交的参数当中来,这大家能看懂了吗?我能给你发个图,看着在哪是这样的。这是我们的上荣宝对吧?这是我们的恢复宝啊,然后我们刚开始做的事情,就下午第一件事情是不是在我们的上游宝里组装了一大堆排位层啊,然后组装成表单数据了吧,组装成表单数据干嘛?是不是一提交跑到汇宝里了,恢复宝是不是展示了一个页面?好,汇付宝展示的这个页面我们大家都知道,页面里说了让我们看到的内容是吧?比如说啊,当前余额是什么,冻结金额是什么,然后你输入一下你的那个支付密码吧,有这个按钮,除了有这些之外,这个表单的最上面是不是封装了一大堆参数隐藏起来了,隐藏起来的参数是什么?是不是这边提交过来的,还记得吧,他把这边提交过来的参数做了一个转化,然后做成集合的形式,然后便利便利是不是隐藏在这个表单当中,好隐藏在这个表单当中之后,当我点击确定按钮的时候,它实际上就调用了什么呀,就刚才我们最后。
15:56
看那个方法把表单当中隐藏的参数又传到那个方法当中了,所以那个方法当中得到的参数是不是这个表单当中隐藏的参数,这个表单当中隐藏的参数是不是当初你从上升表当中给汇报传的参数,就在刚才那个法当中得到的,哪个是当初你从上宝当中你会宝相就是我看恢复就是这个你卖色方法里的这个这个东。
16:25
就是这个这个参数啊,就是当时你从上荣宝给汇宝传的,我再说一下这个流程,这个流程首先是这样的,我们首先从上荣宝里面,咱们上午的时候不是写了这么一个。Commit event嘛,对吧,这个commit event是不是最后返回表单中况,然后提交到哪了,提交到汇付宝的这个方法啊好,刚才提交那一大堆参数是不是都在都都在这儿呢?然后从这是不是组装到这了,好从这是不是从就传到我们页面当中,从页面当中吗?然后从页面当中它不就隐藏起来了吗?啊然后页面当中隐藏起来之后,一面该。
17:12
找一下这是页面对吧?嗯,就是这一部分的参数是注意啊,第一步是从上种表这样写的。我穿了就是上面话组装参数,组装参数,然后呢,提交给谁呢?提交给这个啊啊great user word project展对吧,这是上人保这面提交的,怎么看的,是不是上保这面的这个呢,Invite URL就是它呀,User invite agree user vote到站的对吧?啊所以上轮宝这边是提交到这了,那提交到这了的话呢,我们惠付宝当中就就这块就接着了,接到了之后呢,那么会付宝这边呢,把这个request参数呢,数不是转换成排又放在Mo里了。
18:07
放在里了,是不是就说明放在这个U里面是了,好所以呢,会会妇宝哈,贵妇宝,然后惠妇宝将参数放入这个隐藏对吧,隐藏了好,那么user investment in does,那也就是说是这个是这个原念对吧?然后这不都在这隐藏着的吗?对吧,是做了编译啊,全隐藏到这,全隐藏到这了之后,因为最后我们是点击了这个页面最后的确定按钮,而这个确定按钮呢,它有一个submit phone,而这个submit phone呢,它是在这实现的,最后呢,其实就是把这个表单提交了,提交到哪了呢?那就是提交到这个。
19:05
Action这个地址了,Action这个地址是啥?是不是U,是不是刚才我们的这个贵妇宝里面的下面这个,这不是吗?User对吧,好看页面啊,这个页面。然后页面中点击确定按钮,对吧,然后呢,提交给谁呢?提交给这个这个地址,这个地址的全称呢,实际上就是就是他。提交给他了啊,然后呢,接下来呢,呃,就是刚才因为我们这个地方比是个怎怎么办提交给他了。
20:00
然后呢,提交给他了之后,那他拿到的参数是谁,是不是还是那一大堆参数啊,就是最开始从上热包里组装出来的,好,然后这一大堆参数。提交给他啊,然后呢,他又将又将拿到的参数。嗯,就是进行就是业务处理嘛啊,业务处理它就说冻结呀啥的啊呃,还有生成新的这个外的数据呀,也就是说他拿将拿到的参数进行业务数,他业务处理的流程呢,就是生成一个在汇保里面生成一个新的user外,另外呢,在。com这个地方做了一个冻结,除此之外它还做了什么。还组装又将拿到的参数一部分吧一部分参数进行业务梳理,然后另一部分参数。
21:07
另一部分参数干嘛呀,就是反作为回调函数的参数又返回给上个法了啊,这怎么看出来的呢?就是在下面这个位置。上了吧,你会吧,在下面这个位置,它是不是就组装参数了,那你看有些参数,嗯,比如说像这个,嗯,Agent Bill number,就是一开始汇付宝,呃,一开始上能宝给汇付宝传过去那个啥呢?那个给那个订单编号。咋还一点啥?Agent number对吧,当时传的就是这个agent number,然后传到这个会宝里面去之后,他把这个那个agent number是不是在这里面呢?嗯,在这里面的话,它是不是进来之后生成了一个。
22:17
生成了一个,最后生成一个UC,然后UC外里面的那个订单编号,整个UC里面的这个订单编号是不是来源于这个参数,能看出来吧,他把这个参数做做了一个对解析,做完这解析又做了一个object的解析,把Jason数据就整体的转换成这能看出来吧,它一次性把字把这个哈西ma转换成这字符串,又把字符串里面的内容对应塞到这个UC里,所以这个UC里面它正好有一个,嗯,就是agent number嘛,所以这个user investment里面的agent Bill number是不是就是当时从尚荣宝传给汇付宝的那个订单编号啊,嗯,然后最后他又把这个agent number又干嘛呀,又返回出去了,这不是user agent number了,明白吧,他又给你。
23:17
返回回去了,又返回回去了,这样的话呢,我们的会呃上容房里面的那个从参数,从回调参数当中拿到的这个A的订单的,实际上就是我们当时的那个投资订单的订单编号,这个可以理解吧啊,所以这个呢,是我们的投资订单的订单编号啊,然后呢,我们呢,是用这个投资订单的订单编号去做我们新增交易流水的那个编号。这能理解吗?因为我们每一笔投资都是唯一的,每一笔投资对应一个交易流水,我们只要查这个交易流水已经成成功的增加了,就说明这个回调是成功的就行了,如果这个交易流水没有成功的增加,就说明我们的这个轨一定没有成功执行。所以刚才其实说了半天,想要大家了解的就是这个agent and number在会复保,它是怎么一步一步传过来的,但如果你真的没有了解到位的话,也没关系,你就知道汇付宝里面通过文档你就知道汇付宝里面给咱的这个AA跟number就是订单号,而订单号为一,我们就通过订单号来生成流水,就这样就可以了,明白明白啊,好,那所以呢,汇宝边有点复杂啊,大家尽可能了解,然后接下来呢,我们再回到我们的上升榜的这个。
24:55
No,那么就知道了,我们要的就是number,我们要通过这个number来判断流水存不存在,如果流水在,那就密能返回,如果流水不在,那么就继续执行啊好,那所以这面呢,我们就。
25:17
Transfer transfer flow service啊好,那这个transfer service我们要注入一下resource,然后呢,这块是private service,好,然后接下来呢,这个地方呢,我们找到刚才这个transfer service之前我们曾经写过一个方法,就是a safe,嗯,就是这个流水是否已经保存过了,然后他接收一个A流量的,所以呢,我们就agent。
26:00
把它传进去啊,Agent number,然后呢,把这个啊result呢就拿到了,所以这款我们通过这个来做if啊,如果就有是吧?啊有了那么我们就点one叫密等性返回返回啊,然后接下来呢,直接就有称就行,不用说后面的事情,因为这个已经提现过了,好嗯,这块的关键点不在幂等性,因为幂等性咱们讲过这块关键点叫为什么要从这个里面拿a number啊,然后你想知道它的原理的话,就再看一下刚才我讲的恢复宝里面,如果你不想知道的话也无所谓,因为未来如果我们对接会付宝的话,其实会付保,那里面的细节咱们是无需知道,也知道不了的,你也看不见,因干嘛只能给你,你就知道人家给你的A分的费用。
27:01
啊,就做这件事就可以了,明白吧,啊好,然后呢,接下来呢,这边我们判断完这个密钥性返回之后,我们就可以去修改系统中的账户金额了,啊所以修改账户金额,那这样的话呢,我们要用到user account用到它。那在这个地方呢,我就user account,嗯,我记得之前写一个,我看看user,看,那你们好像之前写过一个方法,直接用就行。找一下user看,直接写,直接写那个update,直接用它就可以。
28:04
好,然后接下来呢,User account.update account这里面呢,它需要什么呢?需要单扣的,单扣的我们是谁单扣的呢?是那个投资人的班扣,因为我们要在投资人里面去做金额的冻结,对吧?啊要做金额的冻结,那么投资人这般或者在哪来呢?也从这个看名册里面来,为什么从他名这里来呢?我们来看一下这个文档,文档里面是不是有。投资人保定协议号,所以就是vote back扣啊vote back扣,然后我们呢,从这里面拿啊,所以这面呢,我们就先把这个ban code先拿到吧,所以parailter map掉get,然后就是what ban扣啊,根据他说的这个规则呢,我们这样写,但是虽然是这样写啊,我先写出来。
29:05
然后呢,我们把它转一下,转成四字,然后这面呢是四字,然后这面呢是行过班扣的,然后接下来呢,嗯,这一年呢,我们就拿到了这个投资人的绑定协议号,但是这话老师也这么说啊,就是我们知道之前的规则是这样的,但是上周把会法上有问题啊,给大家改一改,你看他其他的字段全是这样写的,对吧,这个字段它这样写的。他这样写了,就意味着我们取该怎么学,对也得这样取,你得这样取明白,要不取不出来你知道吧,现在会宝里面给咱们埋那个大坑了,就挺烦的,那我的做法就是把它这坑给填上,让他这样,要不我下回开了吧,是吧,这里面写错了,那根据咱们的习惯,这面就这面就这样写就很正常啊,因为之前都是这样写的呀,对吧,除非你自己核对一下,但一般情况下,我们去看接口的时候,其实我们就是习惯于只看文档,根本就不看源代码,有需要的时候才看,你看到源代码,然后你就会发现,你如果只看文档看源代码的话,它真容易就进掉进坑里了啊,所以建议大家就是你干脆就把脱把东西它改过来啊,如果不改的话,那么上绒宝这面你一定要写这种连字符的形式,就就下划线的形式,就就不要写这种头光形式啊,就这个大家是我希望大家能知道啊好,那所以这样的话呢,我们的这个update。
30:38
这块呢,就第一个参数呢,就选这个办扣的就可以了啊,我们呢,是更新这个人的一个账户的一个金额,然后更新金额的话呢,啊,它这个第二个参数呢,就是余额,第三个参数呢,就是冻结,所以呢,余额肯定我们要减去一部分,冻结肯定我们要把余额减去那部分加一个冻结的,所以这两个参数就有了,那么这样的话呢,第二个参数呢,就是你有这个单嘛,就是取负数,有好几种方法啊,你可以用这个就加上加上一个啥呢,加上它的那个,嗯,就是这笔投资金额,这笔投资金额我们现在是回调了,回调里怎么取投资金额,你没发现它的回调参数也给咱们了,这个就是投资金额,它的回调参数又给咱返回来了,这个当时还是跟刚才我们的这个是一样,从上周宝传给汇宝,然后汇付宝传来传去,传来传又表单又页面又给咱返回来了,明白吧,为了。
31:38
就是咱们在回调当中能够灵活的去获取它啊,所以它把必要的参数呢,对给咱们原样又返回,那么我们呢,就是vata am7这块呢,就是AM7啊这写一下,然后呢,这边呢是嗯,Vote AMT好,然后这块呢,我们就是也是vote am啊那如果这块是字符串的话,这块我们用字符串拼接,拼出一个负数来,拼出一个负数,嗯,负加负,嗯看下负加上。
32:24
那这样就行了,没问题啊好,然后呢,这是第二个参数,就相当于我在原来的余额的基础上,我要减去这个金额,这个理解吧,啊,因为我们原来写的这个matter怎么写的来着,是不是amount加这个amount,如果这个amount传的是复数,是哪个吧,是不是个amount减这个金额了,明白了吧?啊好,那所以这个地方呢,我们就写负数啊,写负数相当于在原来就能减去一部分行了,然后这个地方呢,我们就写那个正数,相当于什么,相当于在原来的基础上我们对加上那个字额,所以呢,就是new这个单嘛,然后呢,就是问am。
33:18
嗯,明白这个意思吧,啊,所以这块呢,就是我们啊所说的这个修改账户金额,从余额中减去金额,在冻结金额中增加金额,这样的一个过程,明白哈,好,我们先说到这。
我来说两句