You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe Python SDK:Subscription.resume添加metadata报错及Webhook问题

问题1:stripe.Subscription.resume 传入metadata报错的解决办法

Stripe的Subscription.resume API本身不支持直接传入metadata参数,这是接口设计的限制。如果想保留Subscription.resumed Webhook触发的同时添加metadata,可以分两步操作:

  1. 先调用resume恢复订阅,触发Subscription.resumed事件
  2. 紧接着调用Subscription.modify添加或更新metadata

修改后的代码示例:

@routes.post("/company_management/resume-subscription")
async def resume_subscription(request):
    try:
        data = await request.json()
        subscription_id = data.get("subscription_id")
        user = await get_user(request)
        if not user:
            return web.json_response({"error": "Not found"}, status=404)
        
        user_id = user.get("user_id")
        
        # 第一步:恢复订阅,触发Subscription.resumed事件
        await stripe.Subscription.resume(
            subscription_id,
            billing_cycle_anchor='unchanged'
        )
        
        # 第二步:添加metadata
        await stripe.Subscription.modify(
            subscription_id,
            metadata={"user_id": user_id}
        )
        
        # 执行用户状态更新逻辑
        async with request.app["db"].acquire() as conn:
            async with conn.cursor(aiomysql.DictCursor) as cur:
                # 这里放你的数据库更新代码
                pass
                
        return web.json_response({"message": "Subscription resumed successfully", "status": "success"})
    except Exception as e:
        return web.json_response({"error": str(e)}, status=400)

这样既满足了触发Subscription.resumed的需求,又能把metadata附加到订阅上,后续相关Webhook事件中就能读取到该metadata。


问题2:触发Subscription.paused Webhook事件

用Subscription.modify暂停订阅时,不能仅将pause_collection设为空字符串,需要正确配置pause_collection的结构,指定暂停行为,才会触发Subscription.paused事件。

正确的代码示例:

await stripe.Subscription.modify(
    subscription_id,
    pause_collection={"behavior": "pause"}  # 必须指定behavior为pause
)

如果需要设置暂停截止时间,可添加expires_at参数:

await stripe.Subscription.modify(
    subscription_id,
    pause_collection={
        "behavior": "pause",
        "expires_at": 1735689600  # 以时间戳形式指定暂停结束时间
    }
)

内容的提问来源于stack exchange,提问作者Morty quinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:57:06