00:01
接下来呢,我们来讲一下支付API中的。退款查询接口,那么在我们的接入指南基础功能当中呢,有一个退款的调用流程,我们来看一下,首先呢,我们用户呢,去访问我们的商户系统,通过我们的商户系统呢,用户点击了退款按钮,那这个呢,也是我们上节课做的内容哈,那通过这个退款按钮呢,就调用了支付宝端的阿里配reund的这样的一个退款请求,那么在这个退款请求调用的最后呢,会给我们同步返回一个退款的结果,所以呢,我们会根据这个退款的结果修改我们本地的订单状态以及退款记录好,那这一部分内容呢,是我们上节课做的内容,那么如果退款接口由于网络等原因导致异常,我们的商户呢,可以调用退款查询接口,查询指定交易的退款信息,所以这个统一收单交易退款查询接口的功能呢,和之前我们所做的统一收单。
01:06
那线下交易查询接口,也就是说查询支付接口的这个接口的功能呢,是一致的,那我们整合的过程呢,也可以参考原来支付接口的这样的一个整合过程,我们呢,先对这个退款接口呢进行一个测试哈,好,我们呢在我们的应用程序当中开发了这样的一个接口,我们来看一下啊。打开controltler API配controller,那么这里面呢,我们已经写好了一个查询退款了,那么它和之前我们的查询支付呢几乎是一模一样的,所以呢,我们来看一下应用程序的get maping这块我们传递了一个order number,也就是订单编号,接下来呢,我们把这个订单编号呢传递给我们的service层,那如果查询到退款结果的话,我们就把这个退款结果呢返回给前端,好我们接下来呢看service层的代码,在service层当中呢,首先我们创建的就是这个阿里配trade fast pay,你放的query request,那么因为我们的查询退款这个接口。
02:13
我们找到查询退款即可。它的名字呢,就是阿里pay trade的fast配方的que,所以这面呢,我们创建的请求对象也是它,那么我们对应的响应对象也是这个名字哈,好,那么创建完这个对象之后呢,我们就要设置一系列的业务参数,那么我们来看一下这个业务参数。在参数说明当中呢,有三个参数呢是必选的,那其中前两个参数呢,是二选一的,一个呢是支付宝的交易号,一个呢是商户的订单号,那我们选择商户的订单号,第三个参数呢是退款单的编号,当然了退款单的编号呢,是在退款请求的时候传入的,而且呢在退款请求的时候传入的,这个退款单的编号呢是可选的一个参数,我们来看一下退款请求。
03:06
一款接口哈。有一个out request number这样的一个参数,好,那么如果当时我们在退款请求的时候传入了这个out request number的话呢,那么我们在退款查询的时候就必须也填写相同的out request number,但是如果我们在退款请求的时候没有传递这个out request number呢?那我们在退款查询的时候呢,就要传入订单号了,所以呢,我们的退款接口当中,我们来看一下之前我们的退款请求接口的调用哈。在这个地方是我们的退款请求结构的调用,那么我们在这个业务参数当中呢,并没有传入退款单编号,因为呢,退款单编号的传入呢,啊是在什么场景下需要传入呢?就是我一笔订单可以发起多笔退款的情况下,那现在呢,我们一笔订单呢,只发起一笔全额退款,所以呢,我们就无需传入退款单编号,那么我们在退款查询的过程当中呢,我们的退款单编号呢,就传订单号就可以了。
04:14
好,再明确一下,如果我们退款请求的时候传入了退款单编号,那么我们退款查询的时候,这个参数就要传退款单编号,如果我们退款请求的时候没有传入退款单编号,执行的是全额退款的话,那么这个位置的退款单编号呢,也是必填的,但是呢,我们填订单编号就可以了,好,这是我们退款接口的业务参数,然后接下来呢,我们正常的把我们的请求提交上去,返回结果啊,我们把这个结果呢返回给前端就可以了,好,这是我们整个的退款查询的代码的实现,那么接下来呢,我们启动一下服务器,对应用程序呢进行一个测试。
05:05
我们这个退款接口呢,就在SPA当中测试哈。好,我们找到网站支付宝支付,然后呢,找到我们的退款查询接口,那接下来呢,我们输入一笔订单号,我们就把上堂课我们退款的这笔订单呢,进行一个查询,好我们找到order info,找到最后一个订单。好,我们查询退款。那这个呢,就是我们查询的退款结果了,它呢,结果呢放在了一个Jason字符串中,这个Jason字符串名字呢,叫做阿里pay trade fast pay放的response,然后这个里面呢,会有一系列的参数,这个是响应码,响应消息,这个呢就是退款单的编号,那当然了,在这个里面它和我们的订单编号是一致的,所以这个是订单编号,然后呢,这个是实际的退款金额,这个呢是总金额。
06:13
然后这个呢,是我们的支付宝的交易编号,也是当时我们发起支付的那个支付交易编号后面是一个签名,所以呢,这个就是我们查询退款的一个过程了,那当然如果这笔订单已经全额退款的话,那么我们在对这个订单进行一个查询测试哈,还是刚才的订单号,你点try it out,我们会发现呢,这个订单如果被全额退款的话,那么它的订单状态会变成交易关闭啊,所以说这就是我们退款查询以及退款后他对订单所产生的影响的一个测试。接下来的一个接口呢,是收单退款冲退完成通知,那么收单退款冲退完成通知呢,它是退款存在退到银行卡的场景下的时候呢,收单会根据银行回执消息发送退款完成信息,这个接口的使用呢,类似于我们之前的。
07:14
异步通知参数,也就是说这个异步通知参数呢,实际上是针对我们之前的支付结果通知进行的一个说明,那么这个收单退款冲退完成通知呢,它的用法呢,和我们支付结果的完成通知的用法呢是类似的,所以呢大家可以参考之前我们的支付结果通知这一块的代码呢进行开发,那么因为退款到银行卡场景呢,我们没有办法在沙箱模式下进行测试,所以呢我们呢就不去编写这部分的代码。
我来说两句