使用支付宝接口抛出异常:Exception Type: AliPayValidationError

在Django项目中,我调用了支付宝的俩个接口

alipay.trade.page.pay # 同意收单下单并支付页面接口
alipay.trade.query # 同意收单线下交易查询接口
在这里插入图片描述

可我在测试的时候,alipay.trade.page.pay接口可以正常使用,可以跳转到支付页面,但alipay.trade.query页面就不行,会抛出个500,并显示这个异常:
在这里插入图片描述
然后我查看了抛出这个异常源代码:
在这里插入图片描述在这里插入图片描述
这个异常是self._verify()函数返回False, 也就是签名不成功,那就是私钥跟密钥出了问题:

  • 我的私钥跟密钥都是直接用linux中内嵌软件openssl直接生成的,而且我也将工钥上传到了支付宝的沙箱应用

在这里插入图片描述
但是我代码里用的公钥,不是复制沙箱应用里的支付宝公钥,而是还是用原来那个由opessl生成出来的公钥,问题就出现在这里

解决办法:

我们需要点击上面“查看支付宝公钥”, 复制支付宝公钥, 在用到支付功能模块下,创建一个alipay_public_key.pem文件,然后复制进入,在该公钥的首尾分别添加:

-----BEGIN PUBLIC KEY-----
# 这里放公钥
-----END PUBLIC KEY-----

在这里插入图片描述

另外,我尝试了一下如果公钥错误,不会跳转到支付页面,直接抛出500异常的
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值