如何通过客户邮箱获取Stripe Subscription及订阅状态
通过客户邮箱获取Stripe订阅状态(单订阅服务场景)
在单订阅服务的场景下,你可以按以下流程用客户邮箱获取对应的订阅状态:
核心步骤
- 通过邮箱定位Stripe客户:调用Stripe客户列表接口,以邮箱为过滤条件找到目标客户
- 获取客户的订阅记录:由于仅提供一种订阅服务,每个客户最多只会有一条订阅记录,直接取第一条即可
- 提取订阅状态:从订阅对象中读取
status字段
补全后的完整代码
import stripe # 初始化Stripe客户端,替换为你的API密钥(建议从环境变量读取,不要硬编码) stripe.api_key = "你的Stripe秘钥" def get_customer_subscription_id(customer_email): # 1. 通过邮箱查找对应客户 customers = stripe.Customer.list(email=customer_email, limit=1) if not customers.data: raise ValueError(f"未找到邮箱为 {customer_email} 的客户") target_customer = customers.data[0] # 2. 获取该客户的订阅记录(单服务场景下仅会返回一条) subscriptions = stripe.Subscription.list(customer=target_customer.id, limit=1) if not subscriptions.data: raise ValueError(f"邮箱为 {customer_email} 的客户无有效订阅记录") return subscriptions.data[0].id # 使用示例 try: sub_id = get_customer_subscription_id("xyz@gmail.com") sub = stripe.Subscription.retrieve(sub_id) status = sub.status print(f"订阅状态:{status}") except ValueError as e: print(e)
关键说明
- 必须正确配置Stripe API密钥,否则无法调用接口
- 两处
limit=1的设置是为了减少数据传输,符合单订阅服务的场景 - 加入异常处理是为了避免因客户不存在、无订阅等情况导致程序崩溃
内容的提问来源于stack exchange,提问作者idroid8
相关产品推荐
相关产品推荐

