我试图发送一个测试请求到瑞典的小额支付系统斯维什。
当运行下面的代码时,我得到错误“SSLError(”错误握手:错误(‘SSL例程’,‘tls_process_server_证书’,‘证书验证失败’))。
我的OpenSSl版本是1.1.1j,这意味着它支持Swish需要的TLS1.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
)发布于 2022-02-04 16:07:25
我认为您应该使用Swish_TLS_RootCA.pem作为验证。Afaik签名证书仅用于签署Swish支付的有效负载
https://stackoverflow.com/questions/62947993
复制相似问题