2014-01-20 21 views
1

我目前使用Python與Braintree集成。在模塊級別,我們配置我們的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密鑰,具體取決於事務的來源。我還希望能夠更輕鬆地在沙箱和生產憑據之間切換。

我該如何做到這一點?

回答

4

我在布倫特裏工作。如果您需要更多幫助,請撥打get in touch with our support team

配置對象can be instantiated

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

,並傳遞給Braintree gateway object

gateway = braintree.BraintreeGateway(config) 

然後你就可以use to run transactions

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

所以,你可以實例化一個新的網關爲每個tra使用適當的憑證進行操作,或者使用每組憑證在網關周圍進行操作並使用適當的憑證。

+0

這很棒 - 謝謝!我正在挖掘圖書館的來源,並沒有把這些作品放在一起。這正是我所期待的。 – poundifdef

+1

其實,這段代碼不太合適!我相信該庫的當前版本(2.26.0)存在一個錯誤。 'AttributeError:類型對象'Configuration'沒有屬性'use_unsafe_ssl''。但是,我可以在github中提交錯誤或請求。看起來這個代碼路徑並沒有真正的測試。但是這讓我開始了,再次感謝你! – poundifdef

+0

@poundifdef是的,我注意到當我寫這個答案時沒有任何測試。由於缺少覆蓋率而導致缺陷。我會在接下來的幾天嘗試修復它。在Github上提出拉取請求或問題是幫助我們追蹤問題的好方法,謝謝! – agf