条纹:遍历所有优惠券

时间:2018-08-24 21:40:50

标签: python stripe-payments

我在网站上使用条纹。我正在尝试检查用户提供的输入是否与优惠券匹配,但是我不知道如何遍历所有优惠券(看来我总是需要输入一个范围从1到100的限制):{{3} }

这是我到目前为止尝试过的方法,它只返回10张优惠券,这是默认设置:

coupons = stripe.Coupon.list(limit=None)

2 个答案:

答案 0 :(得分:1)

在阅读文档时,您似乎需要对结果进行分页。

基本上,您需要第一页的N优惠券,如果要提取的更多,请从您上一个请求的最后一个开始,请求下一个N优惠券。 / p>

在查看文档时,我想到了这种方法:

def get_all_coupons(page_size=100):
    last_coupon = None
    while True:
        response = stripe.Coupon.list(limit=page_size, starting_after=last_coupon)
        coupons = response['data']
        if coupons:
            for coupon in coupons:
                yield coupon
            last_coupon = coupons[-1]
        if not response['has_more']:
            break

get_all_coupons()返回一个生成器,该生成器生成所有优惠券,一次获取100张。


注意:我尚未对此进行测试。

答案 1 :(得分:0)

我从未使用过stripe,但是文档说您可以使用starting_after属性来定义您在优惠券列表中的位置。我不知道如何从返回的清单中读取优惠券ID,但是您将需要它。

# Coupons 0 - 100
coupons_list_1 = stripe.Coupon.list(limit=100)
# Get last coupon in coupons_list_1 and get its ID
last_coupon_id = '$1OFF'
# Coupons 100 - 200
coupons_list_2  = stripe.Coupon.list(starting_after=last_coupon_id, limit=100)

# Check if user inputted coupon is in either list
userinput in coupons_list_1 + coupons_list_2 
相关问题