gpt4 book ai didi

python - 如何取消订阅已创建的想法 Checkout Session Stripe API

转载 作者:行者123 更新时间:2023-12-04 12:58:04 25 4
gpt4 key购买 nike

我在 Stripe 上创建了一个经常性产品,并创建了一个结帐 session ,它工作正常,并为我创建了一个订阅,我可以在仪表板上看到它。
这是我的代码

        checkout_session = stripe.checkout.Session.create(
success_url=domain_url + 'success?session_id={CHECKOUT_SESSION_ID}',
cancel_url=domain_url + 'cancelled/',
payment_method_types=['card'],
mode='subscription',
line_items=[
{
'quantity': 1,
'price': 'price_1HLDRqCHEV6ur4mXq36yVF1D',
}
]
)
我想为用户提供一个工具,他们可以取消他们通过结帐 session 进行的订阅,但只能通过订阅 ID 取消订阅,但我没有从结帐 session 中获得任何订阅 ID。
我如何允许用户取消他们通过结帐 session 进行的订阅?

最佳答案

当您使用 Stripe Checkout 创建订阅时,订阅只会在您的用户完成 Checkout 流程后创建并可用。这意味着当您最初创建结帐 session 时, session 对象的 subscription属性将是 null .
一旦您的用户完成结帐流程,Stripe 将发出 checkout.session.completed包含可用于取消订阅的新创建订阅 ID 的事件。要监听这些事件,您需要创建一个 webhook 端点,这与在您的站点上创建任何其他 HTTP 端点实际上没有什么不同。以下是一些您可以引用的示例:

  • https://stripe.com/docs/payments/checkout/fulfill-orders
  • https://stripe.com/docs/webhooks/integration-builder

  • 一旦您设置了端点以监听 checkout.session.completed事件。 Stripe 将在 event data 中发送更新的 session 对象(带有订阅 ID)。 .从那里您可以将订阅 ID 保存到您的数据库以供以后引用。如果您的用户想要取消订阅,您需要在此处调用此 API 端点:
    https://stripe.com/docs/api/subscriptions/cancel?lang=python
    另一个更简单的选择是使用新的客户门户,这样您就不必为用户创建 UI 来升级/取消现有订阅。只需在此处提供本指南中所示的客户 ID:
    https://stripe.com/docs/billing/subscriptions/integrating-customer-portal

    关于python - 如何取消订阅已创建的想法 Checkout Session Stripe API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63710926/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com