00:00
在我们接收完异步通知参数的第一个步骤呢,就是要做异步返回结果的验签,那么在异步通知参数说明异步返回结果的验签这个文档当中呢,给我们详细的。介绍了如何进行验签,当然了这个验签的步骤呢,是如果我们进行手动编码的话,要实现的这个步骤12345哈,这每一个步骤呢,都是需要我们去啊自己进行编码的,我们在前面呢,引入了支付宝的SDK,所以呢,SDK当中呢,其实已经给我们提供了一个现成的验签参数了,只要我们在前面开发的过程当中。正确的设置了我们的阿里配client config这个里面的阿里pay conig这样的一个配置对象,那么我们就可以直接使用这样的一个验签工具进行验签,那么好,我们来到我们的阿里pay controller里面,在这个位置呢,我们进行异步通知的验签,好,那么如何去做呢?在刚才的文档当中,这个地方就是异步通知验签的一个具体的流程了,我们可以把这段代码呢给它复制过来,上面的这个permeter map呢,就是我们前面接收到的异步通知参数。
01:22
好,那么。这个sign verified呢,就是异步通知验签的结果,那么我们使用阿里pay signature这样的一个工具类的rsa check VE的这个方法呢,进行异步通知参数的延签,那么首先呢,我们先对parameters啊进行一个参数的传递,第二个参数呢,就是支付宝的公钥,所以呢,我们需要在我们的应用程序当中。去注入我们之前的这个环境。
02:01
好,然后呢是con,接下来呢,我们从当中取出支付宝的公钥。Config.get property,那么支付宝的公钥呢?我们来看一下是。阿里配public key啊这个参数。好,我们把它配置在这个位置,那么第三个参数呢,就是我们的。编码方式,编码方式我们还是从之前我们的阿里配的constant这个常量类当中呢去获取,我们还是写叉UTF8,然后接下来呢,就是我们的签名类型阿里配。Constant,那么签名类型呢,这块我们采用的是SISAR这个非对称加密的这种签名方式,好,那这样的话呢,我们就调用了SDK进行了一个签名的验证,然后接下来这个位置呢,就是对签名的一个结果的判断,那么我们这样去判断哈,它如果这个值等于处的话,那么这个就是验签成功,那么我们将会按照支付结果异步通知中的描述,对支付结果中的业务内容进行二次校验,校验成功后response中发挥success,并继续商户自身的业务处理,校验失败则发挥培好,这个是校验成功的情况,那么校验失败,那么记录异常日志,并在response当中返回非典,所以呢,我们现在呢,把它把这个业务逻辑给它改变一下啊。
03:58
把这个放在这个位置好,然后呢,剩下这个部分呢,实际上就是签名校验成功的步骤了。
04:09
那这样的话,如果我们签名校验成功。我们就返回success哈。所以这面呢,就是如果签名校验成功,那么我们就返回success好啊,接下来呢,在这个位置,我们如果签名校验失败,那么呢,我们就先打印一个呃日志,比如说在这个地方。我们记录一下落个点A。异步通知验签失败。或者是支付成功,异步通知验签失败,那这是我们的支付日志,然后接下来呢,我们。返回费列,所以return result啊,因为我们的result之前呢,已经提前复制为这个费列了,所以在这个通知验签失败之后呢,我们直接就在这个位置返回飞利就可以了,那么如果执行到这个位置的话呢,我们就说这是通知验签成功哈,或者是在这个位置啊,我们直接写通知验签成功。
05:25
支付成功。异步通知验签成功,这是我们的异步通知验签成功的一个日志的输出。那当然后面这个步骤的内容呢,我们将在。后续的编码当中呢进行完成,所以写到这吧先。好,那这是我们整个的一个验签的过程,当然这面呢,它有一个异常抛出,那我们呢,可以对这个异常呢进行一个处理,所以呢,我们可以在这个位置。
06:05
对异常进行处理。出来catch一下哈。好,接下来呢,在这款。我们呢,去打印一个错误日志就可以了。好,所以这是我们的签名校验的一个过程,接下来呢,我们呢进行一个测试,所以呢,我们重新启动这个服务。我们还是来到之前我们的这个order info这个订单当中,把最后这一笔未支付的订单呢,把它删掉。好,然后我们再来到我们的应用程序当中,还是对这个Java课程发起一个支付宝的支付。好,接下来呢,我还是用我的支付宝的APP的沙箱板对这个二维码进行扫描。
07:07
完成我的扫码支付的流程。好,我这边的密码呢,已经输入完成了。那么我们来看一下。我们的日志的一个输出。好,这面呢,打印的就是支付成功,异步通知验签成功,当然了这个位置呢,我得打印一个。Info哈,而不是A,我把它改一下啊。就是这个地方,我们打印in for就可以。好,这块呢,就是我们整个的一个验签的开发和测试的一个过程。
我来说两句