2016-07-11 82 views
0

我正在開單結算曆史頁面上顯示客戶,基於braintree訂閱。儘管braintree api通常擁有我需要的所有信息,但我在折扣上遇到了麻煩。訂閱折扣歷史

在braintree控制面板中,訂閱將在交易部分下方顯示一個'歷史'部分,該部分跟蹤訂閱價格/餘額的變化。本節中的數據可在Subscription result object,status_history(供參考,我使用python api)中找到。

我似乎找不到的一條數據是折扣歷史。在歷史部分,附加組件/折扣列將顯示特定歷史事件的折扣數量和總折扣金額。

在訂閱結果對象中,status_history列表沒有折扣信息,並且discounts列表似乎只包含尚未應用的折扣(使其對歷史用途無用)。

所以,我想我的問題是:有沒有一種方法,通過braintree python api,檢索折扣列表,包含日期創建/應用和折扣金額等歷史信息?

編輯:我也檢查了braintree節點庫。我抓住了與python庫一起使用的訂閱。沒有最近的折扣時,訂閱結果對象也有一個空的discounts列表。

編輯2: 這是我訪問訂購的方法:

在布倫特裏控制面板中,專門訂購頁面上,有一個訂閱ID項:

enter image description here

在同一頁面上,在「歷史」部分的底部,我可以看到在某些時候,訂閱有折扣:

enter image description here

所以我抓住了認購蟒蛇:

In [1]: import braintree 
In [2]: sub = braintree.Subscription.find('fkr6sr') 
In [3]: sub.id 
Out[3]: u'fkr6sr' 
In [4]: sub.discounts 
Out[4]: [] 

我希望sub.discounts到有一個確切的條目。

最終編輯:爲了將來參考,空的sub.discounts是預期的行爲。見this comment。我已將父母帖子標記爲答案。

回答

1

完全披露:我在布倫特裏工作。如果您有任何其他問題,請隨時聯繫support

訂閱結果對象的屬性爲add_onsdiscounts,它們是這些相應對象的數組。您可以根據Discount.current_billing_cycle屬性結合Subscription.next_billing_date屬性以及通過從Discount.amountDiscount.quantity中繪製的總修改量推斷修改的應用日期。

示例實現可能看起來像:

subscription_result_object = (Subscription.search(...)).first 
discount = subscription_result_object.discounts[0] 
billing_period = subscription_result_object.billing_period_end_date - subscription_result_object.billing_period_start_date 
discount_start_date = subscription_result_object.next_billing_date - (discount.current_billing_cycle * billing_period) 
total_discount = discount.amount * discount.quantity 
+0

怎麼老有折扣嗎?我在2015年5月的訂閱中看到了控制面板中的折扣,但'subscription_result_object.discounts'爲'[]' –

+0

只要折扣仍與訂閱相關聯,它就會顯示;過期的折扣不會自動刪除。如果您確定已找到正確的訂閱(Subscription.search()返回它們必須迭代的集合),請嘗試匹配[Discount.all()](https:/ /developers.braintreepayments.com/reference/request/discount/all/python)調用。 – jellenberger

+0

會通過'braintree.Subscription.search(...)'查找訂閱,它會得到與'braintree.Subscription.find()'不同的結果嗎?我已經嘗試過這兩種方式,並且「折扣」列表仍然是空的。 –