测试 Swish API 时 SSLError 证书验证失败

标签 ssl python-requests python-3.7 swish

我正在尝试向瑞典小额支付系统 Swish 发送测试请求。
运行下面的代码时,我收到错误“SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])”
我的 OpenSSl 版本是 1.1.1j,这意味着它支持 Swish 所需的 TLS 1.2。
我需要更改什么才能使其正常工作?

import json
from requests_pkcs12 import put

url = "https://mss.cpc.getswish.net/swish-cpcapi/api/v2/paymentrequests/F628384EC1744F9BB1F871EA67CB8BA5"
clientP12 = "Swish_Merchant_TestCertificate_1234679304.p12"
signingCert = "Swish_Merchant_TestSigningCertificate_1234679304.pem"

payload = {
    "payeePaymentReference": "4",
    "callbackUrl": "https://mysite/API/on_swish_payment_done/?payeePaymentReference=4",
    "payerAlias": "0701234567",
    "payeeAlias": "1234679304",
    "amount": "100.00",
    "currency": "SEK"
}

headers = {'content-type': 'application/json'}

r = put(url,
        data=json.dumps(payload),
        headers=headers,
        pkcs12_filename=clientP12,
        pkcs12_password='swish',
        verify=signingCert
        )

最佳答案

我认为你应该使用 Swish_TLS_RootCA.pem作为验证。 Afaik 签名证书仅用于签署 Swish Payouts 的有效负载

关于测试 Swish API 时 SSLError 证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62947993/

相关文章:

email - Gmail 到 SSL 安全域端口

php - 通过 ssl 连接到 phpmyadmin xampp mysql 服务器

ssl - jax-rs 网络服务 : how to hide some entity fields and use SSL

python - 如何从 python 发布到 hipchat

pandas - 使用 Python Pandas 比较具有不同行数的两个 Excel 文件

ssl - HttpComponents 自定义 SSLSocketFactory

python - 如何正确检查币安订单的订单状态

python - 用动态形式的请求替换 Selenium

python - 根据其他列表对字典中的列表进行排序,而无需再次分配它们

python - 代码适用于 Python 3.6,但不适用于 3.7