在设定的时间段后取消 Stripe 订阅

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

我希望订阅在一年后自行取消。实现这个的方法是什么?

checkout_session = stripe.checkout.Session.create(
                    payment_method_types=["card"],
                    mode="subscription",
                    customer=stripe_customer_id,  # Use existing customer ID
                    line_items=[
                        {
                            "price": product.stripe_recurring_price_id,  # Recurring subscription price
                            "quantity": 1,
                        },
                        {
                            # First month extra fees
                            "price_data": {
                                "currency": "myr",
                                "product": "PRODUCT_ID",  # One time charge
                                "unit_amount": 4000,  # RM40 in cents
                                "recurring": None,  # No recurring charges for this item
                            },
                            "quantity": 1,
                        },
                    ],
                    metadata=metadata,
                    # TODO: Add cancellation for subscription after 12 months
                    success_url=YOUR_DOMAIN + "success?success=true",
                    cancel_url=YOUR_DOMAIN + "success?canceled=true",
                )
                return JsonResponse(
                    {"id": checkout_session.id, "url": checkout_session.url}
                )

我使用“stripe.checkout.Session.create”而不是“stripe.Subscription.create”,因为第一个月需要额外付费。这是我唯一的解决方案。如果有其他解决方案,请分享。

基本上,我需要能够将订阅设置为持续一年并在一年后自行取消。订阅期限不应超过一年。

python stripe-payments
1个回答
0
投票

您可以通过设置

cancel_at
字段[1]来安排在一段时间后取消订阅。

虽然您无法在 Checkout Session 创建 API 中设置此字段,因为此字段不可用 [2]。您可以做的是在结账会话完成后,您对订阅创建进行更新,并使用一年后的时间戳设置该字段[3]:

[1] https://docs.stripe.com/api/subscriptions/create#create_subscription-cancel_at

[2] https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-subscription_data

[3] https://docs.stripe.com/api/subscriptions/update#update_subscription-cancel_at

© www.soinside.com 2019 - 2024. All rights reserved.