如何查看Products
使用Stripe API购买的所有Customer
?购买时是否发送了特定事件?我发现还有一个Orders
项,但我不确定Products
是否只能作为Orders
的一部分购买。
客户获取所有订单的示例查询:
from stripe import Order
Order.list(customer=customer_1['data'][0].id)
基本上我想获取用户已购买的所有非订阅项目 - 将以订阅方式查询API,以便为我提供所有非订阅项目,因为Product
必须每个与Order
绑定,还是有不同的/更好的方式来做到这一点?
答案 0 :(得分: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"
类型的每个项目发送SKU retrieve request。实际上,您可能希望缓存结果并仅检索每个SKU一次。