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

Django接入Stripe订阅功能报错:需提供至少一个recurring price

问题解决:Stripe订阅模式下InvalidRequestError错误

错误核心原因

你遇到的错误是因为订阅模式(mode='subscription')要求line_items必须配置重复计费规则,你的代码存在两个关键问题:

  • 注释掉了recurring配置,Stripe无法识别这是一个订阅类价格
  • unit_amount字段错误使用了settings.STRIPE_PRICE_ID,这个字段应填写金额(单位为货币最小单位,比如100代表1INR),而非价格ID

修正后的完整代码片段

checkout_session = stripe.checkout.Session.create(
    success_url=request.build_absolute_uri(reverse('main:complete')) + "?session_id={CHECKOUT_SESSION_ID}",
    cancel_url=request.build_absolute_uri(reverse('main:cancelled_transaction')),
    client_reference_id=request.user.id if request.user.is_authenticated else None,
    customer_email=email,
    payment_method_types=['card'],
    line_items=[
        {
            'quantity': 1,
            'price_data': {
                'product': 'PRODUCT_ID',  # 替换为你在Stripe后台创建的产品ID
                'unit_amount': 9900,  # 示例:99INR,单位为货币最小单位
                'currency': 'INR',
                'recurring': {
                    'interval': 'month',  # 计费周期:可选day/week/month/year
                    # 可选配置:interval_count,比如填2代表每2个月计费一次
                }
            }
        }
    ],
    mode='subscription',
)

关键修正细节

  • 恢复并正确配置recurring:它是一个字典结构,必须包含interval键,明确订阅的计费周期
  • 修正unit_amount:确保是数值类型,对应实际订阅价格的最小货币单位(比如人民币分、印度卢比派萨)
  • 确认product字段为Stripe后台生成的有效产品ID字符串

内容的提问来源于stack exchange,提问作者Ronak Saroj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:50:24