查看客户在Stripe上购买的所有产品

时间:2017-10-12 08:11:30

标签: python-3.x stripe-payments

如何查看Products使用Stripe API购买的所有Customer?购买时是否发送了特定事件?我发现还有一个Orders项,但我不确定Products是否只能作为Orders的一部分购买。

客户获取所有订单的示例查询:

from stripe import Order

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

基本上我想获取用户已购买的所有非订阅项目 - 将以订阅方式查询API,以便为我提供所有非订阅项目,因为Product必须每个与Order绑定,还是有不同的/更好的方式来做到这一点?

1 个答案:

答案 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一次。