温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:01
接下来呢,我们来看一下退款结果通知s notify,那么退款结果通知这个方法呢,和我们之前写的notify支付结果通知这个方法。在控制层的代码呢,是几乎一模一样的哈,只有这一句话不同,就是这面呢。是处理退款单,而支付结果通知呢,是处理。订单啊,我们简单的回顾一下整个的流程。那接下来呢,我们在这面配置的退款结果通知的接口地址呢,一定要和我们前面。在枚举当中设置的。退款结果通知的地址呢保持一致,这样的话呢,微信支付端才能够正确的调用到我们的结果通知接口,然后我们从结果通知的请求参数当中解析出请求数据,接下来呢,我们把请求数据呢转换成哈希map的形式,再接下来呢,我们打印出当前的这个请求的请求ID,便于我们做调试,那接下来呢,我们针对这个请求做了一个签名验证器,那这个签名工具呢,是我们自己创建的,参考了微信的SDK当中的签名验证工具,在接下来呢,如果验签失败了,那么我们就返回错误,好,那么接下来呢,我们会处理退款单,如果退款单处理成功了,那么我们就会返回成功的韵达。那接下来呢,我们来看一下process这个方法。
01:44
在process refund,就是处理退款单的这个业务方法当中呢,首先第一件事情我们做的依然是解密文。解密出报文之后呢,接下来将我们的字符串形式的报文呢转换成哈西,然后我们就可以从这个哈希map当中呢拿到我们的订单信息了。
02:07
所以在这个里面呢,我们要判断订单的状态是否是正在退款中,如果不是正在退款中的话,那就说明呢,这笔订单已经接收过退款通知毁掉了,那么我们就不希望在进入到后面的方法当中了,那为了保证接口调用的密等性,在这个地方我们就直接返回了,那么如果当前的订单呢,是正在退款的这样的一个状态的话呢,那么我们呢,就更新订单状态,并且将我们获取到的结果数据呢,更新到退款单当中去,好,那这呢就是我们完整的退款通知的流程。接下来呢,我们来测试一个退款流程,看一看我们的退款通知能不能成功的接收。好,我们先确保我们控制台上呢,尽可能的没有更多的日志信息。
03:02
然后接下来呢,我们点击退款。发起一笔退款操作,那现在呢是退款中,那现在呢,我们正在等待我们的退款通知的到来。好,我们来查询一下。我们有没有这个退款通知,所以呢,我们来。在我们的日志当中搜索一下退款通知执行。好,这边呢,退款通知呢,已经执行了。我们这边呢,支付通知的ID呢,是这个ID哈,好,然后是通知验签成功,也就是说我们验证签名成功了。接下来呢,是对密文的一个解密,然后解除铭文。那我们现在的订单状态呢,查询出来是退款中。
04:02
之后呢,我们就来更新这个订单状态,更新成已退款。最后呢,我们来更新退款单的状态。好,这样的话,完整的一个退款流程呢,就执行成功了。
我来说两句