00:00
那这个步骤呢,我们就来处理业务,在处理业务的过程当中呢,我们会修改我们的支付订单状态,我们会进入我们的支付日志,好,那么。这个说明我们放在这啊,那处理业务呢,我们使用的是阿里pay service这个业务对象当中,我们要创建一个方法叫process,哦对,好,我们传进去所有的回调参数,也就是通知参数,然后呢,我们再process order这个位置呢,去处理我们的具体的业务,所以我们先把抽象方法创建出来,再把具体方法给它实现一下,那在这块呢,我们来进行一个。注释啊,处理订单好,这面呢,我们先打印一个日志,Log掉跟错,便于一会我们调试处理订单,然后接下来呢,我们处理订单的话呢,我们需要更新订单状态,所以order for service之前呢,我们写了一个方法叫做update status by order number啊,那么这面我们就是order啊,我们得把这个订单号传进去,所以呢,我们先要获取订单号,获取订单好,那么从parameters当中我们可以get出out去number就是之前我们说的这个通知参数哈,好,那这个呢,就是我们的订单号。
01:51
然后根据这个订单号,我们就可以更新我们的订单状态了,那我们的订单状态呢,是all the status支付成功啊success好。
02:03
那这个是更新订单状态,好,接下来呢,我们再进入支付日制,那么记录支付日志呢,我们在payment for里面,那么这个payment in for service呢,我们需要注入进来。Resource private。Payment in for service,最后这个位置呢,我们使用payment in for service,第2CREATE payment for,当然了,这个create payment inform专门是针对微信支付的一个创建的这么一个支付日志哈,那么我们阿里的支付宝的支付日志呢,要有一个不同的版本,所以呢,我们简单的处理的话呢,就是在这个位置我们再写一个阿里支付宝的这个版本哦,阿里配我们把所有的支付参数呢都传递进来。
03:12
那我们的out加enter创建这个抽象方法,Out加enter,我们在实现这个抽象方法啊,之前我们写过一个啊,这个也是进入支付的支,这个是通信支付。好。然后同样我们在进入支付日志的过程当中呢,实际上我们就是创建这个payment in符,然后呢,在里面呢填充相关的值,那么payment info呢,我们首先要set这个高端number,也就是订单号,那么同样订单号的获取啊,跟前面的步骤其实是一样的哈,我们把订单号获取下来。
04:05
好,这是我们设置的订单号,接下来呢,Payment in付,我们还要set一个payment type,就是支付的类型,那支付的类型呢,我们之前有一个pay type啊,叫阿里pay get type,然后接下来呢,Payment in for点,我们还需要set一个是吧section ID,那么transaction ID呢,就是支付系统那面的一个交易编号,那么支付系统的交易编号就是我们阿里那边的业务编号啊,我们把它拿出来。是吧,Section ID。好,等于paraters.get那么阿里的业务编号我们来看一下啊,是哪一个字段。就是这个啊,这个number,支付宝交易号,支付宝交易凭证号,就是它好,我们把它存储起来,那这边呢,我们。
05:10
设置这个transaction ID,接下来呢,我们再设置它的税态就是。支付类型,那支付类型呢,我们说是我们就电编码电脑网站支付就可以了,好然后再接下来呢,就是payment for your site。还有一个就是交易状态trade state,还有哪个没写,还有这个没写啊trade state,那么交易状态呢,我们也是从之前的我们那个交易状态当中拿好meters,我们曾经呢获取过这个参数叫做trade status。
06:09
在controller里面哈,我们是这个啊,就是我们的交易状态status。好,我们把trade status呢复制到这个地方来,然后接下来呢,就是交易的payment info site。Pair total啊pair total是支付的金额啊,它是分,那如果是分的话呢,我们依然需要做一个数据类型的转换,那前面啊,其实我们也做过哈,还是在之前的这个controller当中。我们在判断。交易金额的时候,这个呢,就是我们拿到的交易金额。我们在这个地方做一个获取,好,那这个total amount呢,当时我们是。
07:11
从这个total amount这个地方获取到的。好,然后我们把这个拖呢,设置到这个位置就可以了。好,那这个是我们的交易金额,接下来呢,我们再最后存一个payment in for your site content,我们。把这些关键字段存到独立的啊这个列当中,那么我们把所有的字段存到我们的content这个列当中,所以呢,我们把其他的字段呢,都转成Jason new Jason,好,jason.to Jason,我们转换的是parameters啊,然后呢,Parameters里面呢,它是一个哈map,所以呢,我们把这个哈map呢转换成Jason字符串,然后把这层字符串呢存储到我们的content这个数据属性当中,最后呢,我们base mapper了insert。
08:19
PAYMENT1,这样的话呢,我们整个的支付日志呢,就记录下来了,我们在这个地方呢,打印一个日志记录金丝一致好,这样的话呢,我们这个方法呢,就开发完成了。那么接下来呢,我们对这个进入支付日志呢,做一个测试啊,在测试之前呢,我们可以在这个位置吧,添加一个trans事物哈,那么默认情况下呢,它这个事物呢,有一个roll back for啊这样的一个属性,就是在什么情况下会启用这个数,那它默认的值呢,是run time exception,那但是呢,其实我们希望呢,它是exception,所有的异常啊,它都会启用这个数,所以呢,我们可以在事物处理当中呢,添加这样的一个额外的一个配置啊,那前面的事物呢,我们也可以把这个配置给它添加上,那接下来呢,我们就对这个功能呢做一个测试,所以我们重新启用一下。
09:25
好,我们来看一下啊,已经启动成功了,然后呢,我们再来重新的做一个支付测试。好,我来进行一个扫码支付,这次呢,我们主要就是看我们的这个。订单状态和支付日志有没有成功的去改变和记录好,现在呢,我已经扫码成功了。稍等啊,我这边有点慢,好我点立即付款。密码还是六个一。
10:00
然后我这边是正在付款号,付款成功。那我们可以等待他的跳转,然后接下来呢,我们其实主要要看的呢,就是控制台的日志哈,控制台的日志呢,首先在这个位置。打印了。处理订单对不对?好,然后呢,我们更新订单状态,支付成功,然后接下来呢,在下面这个地方,我们打印了记入支付日志,好,那么后面呢,就是我们记录的支付日志的这样的一个具体的搜后语句了,那么它成功的把这个数据呢,插入到了我们的数据库当中,好,那所以这个话呢,就是我们刚才的处理订单的一个完整的流程,我们来看一下数据库当中的变化,我们来找到订单,那么最后一个订单呢,就是我们这笔订单,我们会发现呢,他的支付呢,已经成功了,接下来呢,我们再来看一下支付日志哈,支付日志这块呢,那么最后一笔呢,就是我们刚刚支付的这个支付日志了,好,我们的支付记录呢,也已经成功的记录在了我们的数据库当中,所以这块呢,就是我们完整的对订单的一个处理的一个过程。
我来说两句