python自行实现支付宝证书签名&验签全流程

在从支付宝沙箱环境转向正式环境时,发现Python SDK不支持提现,因提现接口需证书签名。本文详细介绍了如何放弃SDK,自行用Python实现签名和验签的全过程,以解决支付宝接口调用问题。
摘要由CSDN通过智能技术生成

在网站使用支付宝python sdk接入支付后成功后,需要实现用户提现功能,在支付宝沙箱环境下使用sdk顺利实现提现,结果转成正式环境后报错,咨询支付宝客服后告知python sdk不支持提现,原因是提现接口需要证书签名,当时就傻眼了,感觉被支付宝沙箱玩弄了,关键是之前写的支付接口也得重写,最后无奈只能舍弃python sdk自行实现签名和验签请求支付宝接口。下面是自行实现签名和验签全流程:

证书签名需要新加alipay_root_cert_sn和app_cert_sn两个参数,这两个参数需要解析支付宝根证书(alipay_root_cert_sn)和应用公钥证书(appCerPublicKey_"app_id".crt)得到:
import OpenSSL
import re
import rsa
import base64	

def sn_string():
    root_file_li = open(alipayRootCert.crt', 'r').read().split('\n\n')
    #  支付宝根证书中有4套证书需要一一解析
    alipay_root_cert_li = []
    for root_str in root_file_li:
        cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, root_str)
        certIssue = cert.get_issuer()
        try:
            if not re.match(b'sha.+WithRSAEncryption', cert.get_signature_algo
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值