2017-12-20 21 views
4

스트라이프 결제 게이트웨이를 샌드 박스 모드로 구현하고 있습니다. 체크 아웃 프로세스가 내장되어 있으며 서버에서 API를 호출하여 청구를 생성하는 데 사용되는 토큰을 만들었습니다. 사용내 로컬 env에서 스트라이프 요금 API를 호출하는 동안 TLS 문제가 발생했습니다.

API 버전은 다음과 같습니다 stripe.api_version = '2017-06-05'

charge = stripe.Charge.create(
    amount=1000, 
    currency="usd", 
    description="Example charge", 
    source=token, 
) 

나는이 충전 API를 만들 호출 할 때, 나는 다음과 같은 오류가 나타날 수

b'{\n "error": {\n "type": "invalid_request_error",\n
"message": "Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later. You can learn more about this at https://stripe.com/blog/upgrading-tls ."\n }\n}\n'

로컬 컴퓨터가에 요금을 만드는 데 사용되는 스트라이프 API :

POST: https://api.stripe.com/v1/charges 

내 로컬 컴퓨터에서 어떻게 작동합니까?

하지만 AWS에 배치했을 때 거기에서 작업 중입니다.

답변

4

로컬 Python 인터프리터는 TLS 1.2를 지원하지 않는 OpenSSL의 이전 버전과 연결됩니다. 다음을 사용하여 확인할 수 있습니다.

$ python -c "import ssl; print(ssl.OPENSSL_VERSION)" 

TLS 1.2를 사용하려면 OpenSSL 1.0.1 이상이 필요합니다. 당신이 사용하는 경우 위의

$ brew update && brew upgrade && brew install openssl && brew install python 

명령 줄의 끝에 python3python 교체 :

당신이 OS의 X를 사용하는 경우는,이 ​​문제를 해결하는 가장 간단한 방법은 사용 Homebrew 패키지 관리자입니다 파이썬 3

+0

처음'$ python -c "import ssl; print (ssl.OPENSSL_VERSION)"'을 실행하면'OpenSSL 0.9.8zh 2016 년 1 월 14 일'이되었습니다. 하지만'$ brew update & brew upgrade && brew install openssl && brew install python3'을 실행하면'openssl 1.0.2n'을 얻을 수 있습니다. 하지만 내 프로젝트의 가상 환경에서 버전이 변경되지 않습니다. 그것은 가상 환경 내에서'OpenSSL 0.9.8zh 1 월 14 일 1 월 14 일'을 말합니다 –

+0

@AnkitaGupta 이것은 virtualenv가 여전히 OS X의 기본 파이썬 ('/ usr/bin/python') ('/ usr/local/bin/python3') 대신에. – Ywain