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

在Django项目中实现Stripe自定义价格产品自动创建的方案咨询

问题

我正将Stripe集成到Django房屋租赁项目中,需要实现自定义支付价格功能,现提出两种方案:

  • 自动化流程,编写脚本根据购物车总价创建对应价格的产品;
  • 新增房源到数据库时创建对应的Stripe产品,后续直接选用该产品完成支付。

我更倾向第一种方案,但不确定是否可行,希望得到帮助。

目前我的代码如下:

checkout_session = stripe.checkout.Session.create(
      payment_method_types = ['card'],
      line_items = [{
      'price': total_post_gestion*100,
      'quantity': 1,}]
)

当前代码报错,Stripe提示需使用关联产品的价格ID,不能直接传入整数。

解决方案

第一种方案完全可行,Stripe支持动态创建产品和价格来适配自定义金额的场景,具体实现如下:

1. 修改代码实现动态创建

在生成Checkout Session前,先根据购物车总价创建对应的产品和价格,再用价格ID发起支付:

# 创建通用产品(名称可自定义,比如包含订单标识)
product = stripe.Product.create(name=f"房屋租赁订单 - {order_id}")
# 根据购物车金额创建价格,单位为分
price = stripe.Price.create(
    product=product.id,
    unit_amount=int(total_post_gestion * 100),
    currency="cny"  # 替换为你实际使用的货币,如"usd"
)
# 生成Checkout Session
checkout_session = stripe.checkout.Session.create(
    payment_method_types=['card'],
    line_items=[{
        'price': price.id,
        'quantity': 1,
    }],
    mode='payment',  # 必填,指定支付模式
    success_url='https://your-domain.com/payment-success',  # 替换为你的成功页地址
    cancel_url='https://your-domain.com/payment-cancel',    # 替换为你的取消页地址
)

2. 两种方案的适用场景

  • 动态创建方案:适合金额不固定的场景(比如多房源组合、附加服务叠加等),无需提前维护Stripe产品,灵活性拉满;唯一的额外成本是每次支付多两次Stripe API调用,这对业务性能几乎无影响。
  • 提前创建方案:适合单房源固定定价的场景,房源入库时绑定Stripe产品,支付时直接复用;但如果房源价格调整,需要同步更新Stripe端的价格,维护成本较高。

3. 关键注意事项

  • 确保Django项目中已正确配置Stripe的API密钥(建议用环境变量管理,避免硬编码)。
  • 货币参数要和业务区域匹配,避免出现货币不兼容的报错。
  • 动态创建产品时可以补充描述字段,方便在Stripe后台快速识别对应订单。

内容的提问来源于stack exchange,提问作者Álvaro Hidalgo Rodríguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:35:19