我在网站上使用条纹。我正在尝试检查用户提供的输入是否与优惠券匹配,但是我不知道如何遍历所有优惠券(看来我总是需要输入一个范围从1到100的限制):{{3} }
这是我到目前为止尝试过的方法,它只返回10张优惠券,这是默认设置:
coupons = stripe.Coupon.list(limit=None)
答案 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