2014-01-20 1 views
1

현재 Braintree와 통합하기 위해 Python을 사용하고 있습니다. 모듈 수준에서 API 키를 구성합니다. 의사의 :Braintree + Python : 모듈이 아닌 트랜잭션 레벨에서 자격 증명을 설정하십시오.

import braintree 
braintree.Configuration.configure(...) 

def my_transaction(): 
    braintree.Transaction.sale(...) 

방법 수준에서 어떻게 braintree를 구성 할 수 있습니까? 즉, 각 거래마다 다른 자격 증명을 사용하려면 전역 설정을 업데이트하지 않고 어떻게 할 수 있습니까? 예 :

import braintree 

def my_transaction(): 
    braintree.Transaction.sale({ 
     'configuration': {...}, 
     'amount': ... 
    }) 

거래의 출처에 따라 다른 API 키를 사용하고 싶습니다. 또한 Sandbox와 Production 자격 증명 사이를 쉽게 전환 할 수 있기를 바랍니다.

어떻게하면됩니까?

답변

4

저는 Braintree에서 일합니다. 도움이 더 필요하면 get in touch with our support team으로 연락하십시오.

구성 can be instantiated 객체 : 당신이 다음 use to run transactions을 수행 할 수 있습니다

gateway = braintree.BraintreeGateway(config) 

:

result = gateway.transaction.create({'amount': ...}) 

그래서 새로운 게이트웨이를 인스턴스화 할 수 있습니다

config = braintree.Configuration(
    environment=braintree.Environment.Sandbox, 
    merchant_id='my_merchant_id', 
    public_key='public_key', 
    private_key='private_key' 
) 

Braintree gateway object에 전달 각 트랩마다 nsaction을 적절한 자격 증명과 함께 사용하거나 각 자격 증명 집합을 사용하여 게이트웨이를 유지하고 적절한 자격 증명을 사용합니다.

+0

그게 훌륭합니다 - 고마워요! 나는 도서관의 근원을 파고 있었고 그 조각들을 함께 모으지 않았다. 이것은 내가 찾고 있었던 바로 그 것이다. – poundifdef

+1

사실이 코드는 제대로 작동하지 않습니다! 라이브러리의 현재 버전 (2.26.0)에 버그가 있다고 생각합니다. 'AttributeError : type object 'Configuration'에는 'use_unsafe_ssl'속성이 없습니다. 그러나 나는 github에서 버그를 제기하거나 요청을 풀 수 있습니다. 이 코드 경로에는 실제로 테스트가없는 것 같습니다. 그러나 이것은 나를 시작하게한다, 다시 당신에게 감사해라! – poundifdef

+0

@poundifdef 그래, 내가이 대답을 쓸 때 시험이 없다는 것을 알았다. 누락 된 범위로 인해 버그가 있다는 것은 좋지 않습니다. 나는 이틀 후에 해결하려고 노력할 것이다. Github에서 끌어 오기 요청 또는 문제를 제기하면 문제를 추적하는 데 도움이되는 훌륭한 방법입니다. 감사합니다. – agf