2017-10-12 112 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