00:00
好,下一步我们要生成订单。生成订单这事儿,不能我们随便自己瞎编一个啊,人家支付宝呢,对订单号是有规则是有要求的啊,我们回到他的呃文档里边,我们去看一下啊。当然你如果记不住他文档这些具体是在哪啊,你记住他的一个路径,你在百度上去搜这个支付宝开放平台。点他的官网进来。打开打开它的文档中心。在这个里面呢,这可以去搜索这个订单号的规则,我们要搜索一下。
01:09
今天这个网速有点慢哈。订单号。呃,它这个问题的答案啊,这个参数是叫做out trade number,对于支付宝来说,我们对于支付宝来说,我们就是外边的是吧?哎,所以说是一个外部的订单号。它要求是一个64位的字符串啊,64个字符以内可以包含字母数字上线需保证在商户端呢,是不重复的,哎,这是他的一个要求。我们在笔记里边呢,也写一下。哎,这是我们这个就是操作的第三步了哈,去生成订单号。首先是支付宝对订单号的要求。
02:09
哎,网址粘过来。然后呢,这个下一步哈,就是说我们把这个,嗯,它这个地方给截图一下。它下面有个注释哈,说该参数值是商户根据自定义啊,根据要求自定义生成,需保证在商户端不重复建议格式,当前格,建议格式是当前时间的,加上自定义的数字诶。那么支付宝是这个要求,那么我们自己怎么去设设计这样一个格式。大家想他建议当前时间这个比较容易做到啊,那么就是我们也是当前的这个时间。
03:10
这个时间呢,就是年月日小时分秒啊。哎。当前时间啊,加上我们的,嗯。呃,加上一个什么东西就是。为了能够让订单号不重复啊,能够去用户和用户之间呢,能够去区分开,我们这儿呢,去加上一个用户的一个ID。哎。那这个当前的时间哈,说为什么说我已经精确到秒了,它还是难道还是有可能会重复吗。这个事儿大家你得这么想,在极端的情况下。啊,在这个我们考虑说最极端的情况下,同一秒钟有好几个用户下单,那么这个时候呢,其实如果我们都让他下单成功的话,同时在这一秒内生成好几个订单,那么这个时候因为计算机的能力,执行能力是很强的,一秒钟他能做很多事儿,他这这几个用户,他们生成的订单就是同一个同一个。
04:20
啊,就是同一个号这个就重复了,所以说不能让它重复哎。不能让他重复的,我们就得给他加上我们的用户的ID,那么呃,同一个用户呢,他在同一秒之内下好几个单,这个是不可能的,这个我们从操作流程上面,咱们也不允许用户他也做不到啊,所以说我们加上用户的ID就可以去避免这样的问题了。那么呃,我们这个时间的格式呢。我们采取这样一个格式哈,YYYYMMDDHHMMSS,哎,咱们用这么一个格式,用户的ID呢,哎,我们通过UUID来生成一下,哎,你说不对啊,你这个用户ID我们现在是个隐推类型的呀。
05:13
我们在这个数据库里边,你看。哎,我们在这个数据库里边,你看。嗯嗯。这里边儿你看我们这个member呀,这个我们现在是。这不是12345吗?主键自增的呀,对吧,Auto自增的啊,它这这是个整数啊,它不是那个应用ID啊啊那这个。这里边儿跟大家解释一下啊,就是说我们实际开发的时候呢,考虑到有的时候这个用户量会很大。哎,有的时候考虑到用户量会很大,所以说呢。这个我们还有的时候不建议使用这个自增的方式生成这个主件啊,不建议使用自增的方式,哎,因为这个数据呢,有可能你会删,如果你delete删除掉以后。
06:10
如果说你delete删除掉这条记录,那么对于数据库这边来说,被删除掉的这个ID号它是不会重复使用的啊,你有123诶第四个呢,这个曾经有一条记录,但是这条记录呢被删除掉了,那么你在新增的时候呢,它继续从五开始删除掉的,这个你不明确指定的话,它就不用了,这时候就会有裂缝啊,这个叫做裂缝,1234567,哎,在四这个地方呢,就会有裂缝。那么也就是说这个时候呢,它的利用率呢,是有可能是很低的啊,这样的方式生成的主线利用率很低,它可能很快就到达这个上限了。因为有的时候一个项目呢,它持续运行很多年啊,它这个慢慢积累的,它也会不断有新用户进来是吧,它慢慢积累,它也会有到上线的那一天,所以说呢,其实这种方式啊,考虑实际开发的时候,我们可能不去采用这种,采用这种办法啊,所以说呢,我们在这儿呢。
07:06
提前啊,咱们就用UUID呢,来生成我们的这个用户的ID啊。那么下边呢,我们看一下啊,这是我们这个格式。有了这格式,我们做了这样一个约定,以后我们看一下这个代码怎么写。嗯,当然说我们这个东西它肯定是,呃,不会超过64位的啊,因为这一组的话,他们是多少啊是。呃,这是个四加40个,对,这是14位,然后因为ID呢,如果我们把中间的横线去掉,它是32位啊,所以说十四十四加32是个46,没有超过64啊,这个是没有问题的。所以说呢,呃,我们这个时候的第一步哈,是生成说根据当前时间,这个应该叫日期时间去生成这个字号。
08:10
哎,这个时候我们去有一个simple data for。然后呢,For一下,尿一个date。这就是我们这个时间的部分,哎,然后呢,下一步呢,是我们去。嗯。使用UUID哈,去生成用户的ID的部分。哎,这个时候呢,就是。嗯,User的这个部分啊,UUID点。
09:02
嗯,这个叫做random。ID点。嗯,兔子顺点replace,把中间呢,它会有这样一些个横线哈,替换成这个空字符串,然后呢,再都给它改成这个大写的。哎,这两部分,然后呢,第三下一步呢,就是去给他们去组装一下,就一块啊。这就是我们说这个time部分加上我们user的部分。这就是我们订单号,哎,然后这个第四步就是设置到我们这个order VO的对象中。好嘞,啊,这是我们生成订单号的这一部分。呃,那么下一部分呢,我们考虑的是这个算一下这个订单金额,这个这个这个事好办哈,这个在order project VO里边啊,我们去获取一下。
10:05
这个叫什么?嗯,有个叫。呃,单价是哪一个哈,看看。这个是运费发起人的姓名。嗯。这是一个count。啊,在下边啊support price用这个呢去乘一下。Order project VO。再get一个return count,哎,然后呢,要加上一个order VO点这个。Freight。但是呢,这F有可能是零啊,对,它是啊,我我记记错了哈,这记成乘法了,加法没事,它是零就是零,它要是正数的话,就把这个给加上了。
11:00
嗯,然后呢,整个这个东西呢,我们去。啊,这个叫我们身为一个in的一个order amount,是不是叫order amount看看啊。对,就是它啊,然后把这个也设置进来。VO。Set一个order amount。嗯。不对哈,这个它这我们这个是叫大玻璃型的。那么我们这儿也是使用double类型的。好嘞,哎,然后有了这个以后呢,呃。不能从int转成这个double,那就强转一下呗啊。整个给他们这边是做了一个强转一下,嗯。
12:06
那么下一步呢,这些东西都准备好以后啊,那这时候回到我们的流程图哈。这边我们就可以这些东西呢,咱们就可以去用来发送请求到支付宝的接口,就可以去调支付宝的,呃,调支付宝接口去对接我们的支付部分了。
我来说两句