2017-10-12 113 views
0

如何查看Customer使用Stripe API購買的所有Products?發生購買時是否發送了特定事件?我看到有一個Orders項目,但我不確定Products只能作爲Orders的一部分購買。查看客戶在Stripe上購買的所有產品

樣品查詢由客戶獲得所有訂單:

from stripe import Order 

Order.list(customer=customer_1['data'][0].id) 

基本上我想獲得用戶已購買的所有非基於訂閱的項目 - 將查詢訂單的API這種方式給我所有非訂閱的項目,因爲Product必須每個必須綁定到一個Order,或者是否有不同的/更好的方式來做到這一點?

回答

0

您可以使用list all orders方法和customer參數檢索客戶的所有訂單。

然後,您可以通過訂單的items屬性查找訂單中包含的SKU。

最後,您可以使用SKU的product屬性檢索與SKU關聯的產品。

在Python中,你可以做這樣的事情:

customer_id = "cus_..." 
products = [] # list of products ordered at least once by the customer 

orders = stripe.Order.list(customer=customer_id) 
for order in orders.auto_paging_iter(): 
    for item in order.items.auto_paging_iter(): 
     if item.type == "sku": 
      sku = stripe.SKU.retrieve(item.parent) 
      if sku.product not in products: 
       products.append(product) 

上面的代碼是不是很有效,因爲它會發出SKU retrieve request"sku"類型的每個項目。在實踐中,您可能想要緩存結果並僅檢索一次每個SKU。

+0

謝謝!但是,購買'Product'的每個實例是否必須附加到'Order'?也就是說,企業有可能向客戶收取「產品」(或用於非訂購型採購的某種其他抽象)而沒有放置「訂單」? – orange1