00:00
那通过刚才我们的描述呢,有可能大家对中间的这个流程呢,还是读清楚,这个没有没关系啊,因为我们还没有去具体的说,那我们先说结果啊,通过有的时候呢,你会发现通过结果倒推的形式去对代码进行理解,效率是非常高的,所以我们就先说结果,结果是什么?结果就是最终我们要得到一个表单字串,那么这个表单字符串长什么样呢?我们打开我们的前端代码,这个前端代码呢,昨天也发给大家了,里面有个test test里面呢有一个form点,这是TL,好,这个是之前我们讲政府绑定的时候呢,咱们创建的这么一个表单,那这个表单呢很简单,前面呢是一些基本的H,是缥缈的结构是吧,然后呢,这里面呢有两部分核心,一部分呢是一个form,一部分呢是一个script,那么我们来看一下这个phone,这个phone呢,它有一个action属性啊,这个action属性是什么?就是我们的远程提交地址,就是会复。
01:00
的URL,那换句话来说,这个action实际上应该是什么?应该是我们文档当中所提到的对这个接口的提交地址是吧?啊然后呢,我们应该是以POS方式向这个地址是不是做一个一个接口的提交啊,啊所以呢,这个就是最终的接口提交地址,然后这个地方是什么,这个地方是不是就是在文档当中他提交,他提到的应该用POS方式去提交这个数据啊啊所以呢,这个位置呢,就是用POS方式提交数据,好,所以这是接口地址,这是POS提交,然后接下来参数这块参数是什么呢?参数呢就应该是文档当中啊,这面文档当中所说的这个表格当中的所有的内容,而且是表格当中的所有的必填内容,这里面都是必填的,你应该依次的把它都组装出来。
02:00
啊,然后呢,作为这个表单的参数,所以我们这个表单应该有agent ID,有agent Bill number,这样的话,我们这个表单就应该这样写agent ID是吧,然后agent number。嗯,我们看下啊,我在这呢,Agent build number,然后呢,这个agent ID我就随便写了,对吧?Agent number就是到时候呢,咱们会在哪啊,会在业务层生成,所以在业务层咱们在做什么,就是做这些数据的键和值的这么一个生成,有的呢是需要咱们算一下,有的呢是需要咱们可能从数据库中拿拿一拿的,有的呢是可能是需要咱们自己应编码一下的,有的呢,可能是需要从一些工具类里面获取的啊,就是一系列的这样的一个参数,我们都要依次的给它获取出来,所以整个组装这个参数的过程就就构成了什么呀,就构成了我们这个业务方法,那我们这个commit差这个业务方法所做的事情就是来组装什么呀,组装这些参数,并且把这些参数一一的键和值都给它弄出来之后,把它拼装成什么呢?把它拼装成一个字符串,而这个字符串是什么呢?这个字符串就是完整的表单的这部分内容。你就可以把。
03:19
它当了一个字串,我们最后就要拼这么个东西出来,所以这个大家理解好,然后接下来呢,后面就可能会有很很多的参数,对不对啊,那么这个值呢,我们都会依次算下来,然后这些参数呢,我们都会依次的发code呀,插值,AMT啊,Dat啊,都要依次的在这个地方进行参数的一个,这个呃,就是组装,我们组装出来字符串这个内容就要和那个参数一匹配好,这个匹配的原则是什么呢?我再来说一遍,就是大家呢,要看它前面这个文档部分的这个业务接口啊,啊,这个业务接口这面呢,有一个,嗯,详细的说明,详细的说明这块呢,最后有一个叫做我看一下它在哪。
04:03
这呢这块呢,有一个叫做所有的字段呢,要使用和风形式,比如agent ID这种字段呢,你传的时候你要用AID传,那就意味着我们在组装这个表单这个参数的时候呢,我们应该把它组装成这个样子,对这块大家一定要理解啊,就是因为文档当中它就是这样写的,所以呢,我们就必须按文档当中就这样去传,否则的话呢,那么可能前端传它呢就会出现问题,那么同样像我们刚才看到的这个3.9 3.9这个参数呢,叫班的code的,所以那你这边呢,就应该写班的扣好,以此类推,后面我就先不写了,因为这个并不是手工能够做出来的事情,好,那这样的话呢,我们的这个参数依次的就把它组装完整就行了啊,那么这些参数呢,有一个参数呢,就比较麻烦,就叫做验签签验签。
05:03
参数这个是生成签名的啊,这个签名呢,它会根据你前面所有的参数,然后做一个排序,然后做一个编码,然后再做一个什么连接,然后再做一个加密等等啊,然后再加上时间错什么乱七八糟一个加,然后再加上什么随机数什么,然后组成这么一个签名,好这个签名具体的组成过程,这个签名生成的过程在哪还是在这个地方。就是叫这个,呃,第三部分业务接口,业务接口传单说明这块有一个叫做。验签算一个生成啊,验签算一个生成这块,它具体说了生成的规则是什么,通过这样的一个规则,我们就可以生成一个签名了,当然这种东西的话,我们每一次啊去做远程调用的时候,都要去通过这个相同的规则生成一个签名,所以呢,我们当时就给大家提供了一个工具,对不对,通过那个工具可以直接帮我们生成签名,那么我们就不用去追究啊,或者是不用关注它的具体的生成过程了,这个细节呢?啊,大家如果想了解的话,你可以去看一下那个工具里面的源代码,对吧?啊,那这个工具在哪呢?我们来找一下,就是之前我们在呃套里面。
06:18
引进来的这个叫做HBF里面有个request helper啊,叫远程提交的一些帮助的一些工具,然后这个request helper里面呢,有一个叫get sign,这么一个呃方法,这个get sign,你把所有的参数都给他,这些参数是什么?这些参数就是这些参数就是在我们的这个,嗯,实名认证母充值啊,就是在这个变量定义里面啊,就是所有的这些请求参数,除了签名,因为签名它要生成了,除了签名之外的其他参数,你都把它放到一个map克集合里面,然后呢,全都给到它,全都给到它,它呢就可以帮助我们生成最后一个签名啊,所以说这个其实就是签整个签名生成的过程,那么整个从第38,从第30行一直到41行,这个这个代码其实就是对什么呀,对,刚才我们看到的,咱们前面这个传参说明参数啊,这个验线参数生成就是对这段的。
07:18
文字的一个具体的实现,明白吧,所以大家如果这段文字看不懂的话,你可以结合这段代码来看啊,这个是生成一个签名的过程,好,那所以生成签名的过程呢,实际上啊,也会在我们当前的这个service层次进行一个具体的调用,所以无论是组装最终的表单字符串,还是在表单字符串组装的过程当中,要生成签名,我们都会写在这个service当中,所以这是service它最主要的要做的事情啊,大家知道这个service要最主要要做要要做的事情之后,实际上你就可以入手去做了,你可能就有思路了,对不对,好,那这块呢,是我们所说的,我们就是最终我们组装了一些表单,然后在所有的这个参数的最后,我们还要生成这个签名啊,就是中间呢,可能还会有呃,其他的一些其他的一些参数啊,这些参数呢,我就省略了啊,就不写了哈,然后呢,我们来说一下这个子签名。
08:18
嗯,这个签名最后组装完了之后,那很有可能就长成就这个样子了,对吧?嗯,反正就是一大堆这个这种字符串了,好然后接下来呢,我们是不是最后整个的这个参数你都做完了,参数也有了,提交地址也有了,提交方式也有了,是不是得做提交啊,啊得做提交的话,你总不能像我们之前一样,就是弄一个发寸按钮吧,然后你一点这样就行,因为这种提交应该是静悄悄的,你不应该让用户看到,用户看到这么个表单算怎么回事,他也不是算是什么大地是什么是不是,所以这种事情应该是在后台静悄悄的进行的,用户看不见,用户看不见怎么办?我们也不能给他提供按钮,我们就直接做表单自动提交这个javascript代码,就是提交表单用的,而且大家要注意这个JAVASCRIPT1定要写在form的后面,你现在写到前面就不太好。
09:17
为什么?因为之前大家在学这边的时候,肯定知道HTM和查配置,它是顺序从上到下顺序执行,他先执行提交了表单还没有呢,提交谁,所以说一定是你组装字符串的时候啊,先组装这个表单字符串,再组装脚本字符串,所以呢,我们这面我们这个业务方法要做的事情就是先组装一个表单字串,再在表单字符串后面组装脚本字串,对不对,然后组装表单字串的过程当中,我们要生成各种这个参数,要生成签名,然后最后组装脚本字符串,最后把完整的字符串组装出来,就是它把这个整个字符串发送给前端。到这把整个的这个字符串,这样是不是就发给前端了,好,前端后端它是执行不了这个东西的,因为这是HTM,没有办法在后端执行,但是你一旦把这个东西发给前端,它在浏览器里面展示这个内容的话,浏览器直接就渲染它了,它就会把它当表单,当提交去渲染,它就不再是一个字串,所以呢,我们这个就提交上去了。
10:23
明白吗?所以这个整个就是一个提交的流程啊,那所以我们来看,我来访问这个页面的时候,就相当于我把这个东西放到前端了嘛,好,你看它是是不是直接就提交过来了,提交过来了之后呢,当然因为我们的参数没有组装完整,所以它出错,尤其是我们的签名是我瞎写的,他你提交参数之后,他第一件事情要做的就是验签。明白吧,他其他的参数不处理,比如说刚才我提交的是充值,他是不是先给我充值,不是的,他要先验证你的签名是不是正确的,他验签通过了之后才能做后续的事情,所以你会发现那第一个步骤他验签就错误了,那这样的话就相当于拒绝我们给他提供请求,因为我们这个请求是不安全的,对不对啊,所以签名还是非常重要的,那他验签的这样的一个,呃,具体的一个原则是什么?就是它用相同的方式去生成签名,正好跟我们一匹配一样,那就验签成功,明白吧,因为这个验签的过程是我们定好的啊,是我们定好的啊,所以它会用相同的方式去生成签名,如果生成的签名一致,那验签就什么了,好,那么这块呢,就是我们整个充值当中,我们所说的这个具体的表单的一个提交方案啊。
我来说两句