這是我的程式碼:
def test(request):
paypalrestsdk.configure({
"mode": "security-test-sandbox",
"client_id": "XXXXXXX-XXXX-XXXX-XXXX",
"client_secret": "XXXXXXX-XXXX-XXXX-XXXX" })
payment = paypalrestsdk.Payment({
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [{
"credit_card": {
"type": "visa",
"number": "4417119669820331",
"expire_month": "11",
"expire_year": "2018",
"cvv2": "874",
"first_name": "Joe",
"last_name": "Shopper" }}]},
"transactions": [{
"item_list": {
"items": [{
"name": "item",
"sku": "item",
"price": "1.00",
"currency": "USD",
"quantity": 1 }]},
"amount": {
"total": "1.00",
"currency": "USD" },
"description": "This is the payment transaction description." }]})
if payment.create():
print("Payment created successfully")
else:
print(payment.error)
return render(request, "test.html")
執行指令 payment.create () 時,發生錯誤: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 警報握手失敗 (_ssl.c:590) 。我正在使用 Mac 。請告訴我為什麼?
答案1
我遇到了同樣的問題,這就是我發現的問題以及解決方法:
Apple 提供的 Python 版本對於 openssl 來說已經過時了。您可以透過進入終端機來測試您的版本:
python
>>> import ssl
>>> print ssl.OPENSSL_VERSION
OpenSSL 0.9.8zh 14 Jan 2016
上面是不好的版本。解決方法之一是安裝新版本的 python。最簡單的方法可能是使用家庭釀造作為此處描述。
下面類似於您在升級版本的 python 中應該看到的內容。然後 paypalrestsdk 就可以工作了。
python
>>> import ssl
>>> print ssl.OPENSSL_VERSION
OpenSSL 1.0.2h 3 May 2016