在python SDK中向stripe Subscription.resume添加元数据

问题描述 投票:0回答:1

我已经为订阅创建了一堆端点,例如修改、取消和创建 Customer.create,所有这些都采用一个元数据参数,该参数将在钩子事件中可用,除非我使用

stripe.Customer.create
时我收到一条错误消息

Received unknown parameter: 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)
        
        
        # update the user status
        async with request.app["db"].acquire() as conn:
            async with conn.cursor(aiomysql.DictCursor) as cur:
                user_id = user.get("user_id")
                
                await stripe.Subscription.resume(
                subscription_id,
                billing_cycle_anchor='unchanged',
                metadata={"user_id": user_id}
                )
                
        return web.json_response({"message": "Subscription resumed successfully", "status": "success"})
    except Exception as e:
        return web.json_response({"error": str(e)}, status=400)

我知道我可以使用订阅恢复订阅。修改如下:

 await stripe.Subscription.modify(
    subscription_id,
    pause_collection='',
    metadata={"user_id": user_id}
)

我想将此作为最后的手段,并使用 Resume 方法,因为它可能会触发

Subscription.resumed
webhook。

一些额外的问题,修改方法,如果用于暂停订阅它只会触发

Subscription.updated
webhook,如何触发
Subscription.paused

python stripe-payments python-stripe-api
1个回答
0
投票

stripe.Customer.create

您的意思是

stripe.Subscription.resume

如果是这样,恢复订阅端点不会将订阅的所有属性作为参数,这就是为什么您无法使用它更新

metadata
等字段。如果您想恢复订阅并在同一调用中修改它,您应该使用:

await stripe.Subscription.modify(
    subscription_id,
    pause_collection='',
    metadata={"user_id": user_id}
)
© www.soinside.com 2019 - 2024. All rights reserved.