订阅折扣历史

时间:2016-07-11 16:28:43

标签: python braintree

我正在开设一个结算历史记录页面,根据braintree订阅向客户展示。虽然braintree api通常包含我需要的所有信息,但我在折扣时遇到了问题。

在braintree控制面板中,订阅会显示历史记录'交易部分下方的部分,跟踪订阅价格/余额的变化。可以在status_history下的status_history下找到此部分中的数据(供参考,我使用python api)。

我似乎无法找到的一条数据是折扣历史记录。在历史记录部分,附加组件/折扣列将显示特定历史事件的折扣数量和总折扣金额。

在订阅结果对象中,discounts列表没有折扣信息,discounts列表似乎只包含尚未应用的折扣(使其无法用于历史目的)。

所以,我想我的问题是:有没有办法通过braintree python api检索折扣列表,包含创建/应用日期和折扣金额等历史信息?

编辑:我也检查了braintree节点库。我抓住了与python库使用的相同订阅。当没有最近的折扣时,订阅结果对象也有一个空的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]: [] 列表。

编辑2: 这是我访问订阅的方法:

在braintree控制面板中,在特定订阅的页面上,有一个订阅ID条目:

Subscription result object

在同一页上,位于"历史"的底部。部分,我可以看到,在某些时候,订阅有折扣:

enter image description here

所以我在python中获取订阅:

sub.discounts

我希望sub.discounts只有一个条目。

最终编辑:为了将来参考,空public static NodeList getNodesWithXPath(Node aNode, String aXPath) { try { XPathFactory xPathfactory = XPathFactory.newInstance(); XPath xpath = xPathfactory.newXPath(); XPathExpression xPathExpression = xpath.compile(aXPath); return (NodeList) xPathExpression.evaluate(aNode, XPathConstants.NODESET); } catch (XPathExpressionException e) { // ignore } catch (NullPointerException e) { // ignore } return null; } 是预期的行为。见enter image description here。我已将父帖作为答案标记。

1 个答案:

答案 0 :(得分:1)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系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