我正在尝试连接到Visa Direct API,但我没有通过基本的SSL证书验证,这是我的代码:
import requests
headers = { 'Content-Type' : 'Application/json' }
url = 'https://sandbox.visa.com/rsrv_vpp/v1/acnl'
payload = {"SystemsTraceAuditNumber":565690,
"RetrievalReferenceNumber":"505012455690",
"AcquiringBin":409999,
"AcquirerCountryCode":"840",
"PrimaryAccountNumber":"4895070000008881"}
r = requests.post(url, data=json.dumps(payload),
cert =('/etc/ssl/certs/sandbox_cert.pem'), headers=headers,
auth=('370df57a-a8aa-4446-a23e-44a0ef06ea09',
'6023e518-c36c-47a8-b16e-c8a5b3a941ef'))
你可以看到我正在使用请求并传递cert参数以及API用户和密码信息,但我一直收到错误:
requests.exceptions.SSLError:[Errno 1] _ssl.c:510:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
答案 0 :(得分:1)
当我尝试在Google Chrome中打开https://sandbox.visa.com/rsrv_vpp/v1/acnl时出现SSL错误。
签证文件说
- SSL服务器身份验证
醇>sandbox.visa.com服务器上安装的SSL服务器证书是 签证签发自签证书。客户端应用程序需要添加 sandbox.visa.com SSL证书到他们的本地信任商店 在运行时防止SSL握手错误。
确保连接到Visa Direct API的应用程序是 配置(或构建)以将受信任的证书存储区用作信任 商店,而不是钥匙商店。
验证应用程序是否配置为使用正确的密码 与信任库文件相关联。
看起来您需要先进行一些SSL身份验证才能连接到Visa。