これは私のコードです:
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 alert handshake failure (_ssl.c:590)。私は Mac を使用しています。理由を教えてください。
答え1
私も同じ問題を抱えていましたが、私が見つけた問題と解決方法は次のとおりです。
Apple が提供する Python バージョンは、openssl に関しては古くなっています。ターミナルに移動してバージョンをテストできます。
python
>>> import ssl
>>> print ssl.OPENSSL_VERSION
OpenSSL 0.9.8zh 14 Jan 2016
上記は悪いバージョンです。修正方法の1つは、新しいバージョンのPythonをインストールすることです。最も簡単な方法は、おそらくhome brewを使用することです。ここで説明。
以下は、Python のアップグレード バージョンで表示される内容と似ています。その後、paypalrestsdk が機能します。
python
>>> import ssl
>>> print ssl.OPENSSL_VERSION
OpenSSL 1.0.2h 3 May 2016