调至内容部分
创建账户或登录
Stripe 文档徽标
/
询问人工智能
创建账户登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
API 和 SDK帮助
概览
关于 Stripe 支付
升级您的集成
支付分析
线上付款
概览查找您的用例Use Managed Payments
使用 Payment Link
Use a prebuilt checkout page
    概览
    Quickstart guides
    Checkout 的运作机制
    自定义外观样式
    收集额外信息
    收税
    动态更新结账流程
    管理产品目录
    订阅
    管理支付方式
    让客户用本地货币支付
    添加折扣、追加销售和可选商品
    设置未来付款
    支付过程中保存付款详情
    付款后
    从传统 Checkout 迁移
    迁移 Checkout 来使用 Prices
Build a custom integration with Elements
构建应用内集成
线下支付
Terminal
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付场景
处理多种货币
自定义支付流程
灵活收单
编排
超越支付功能
成立公司
加密货币
智能体商务 (Agentic Commerce)
Financial Connections
Climate
了解欺诈
Radar 欺诈保护
管理争议
验证身份
美国
简体中文
首页付款Use a prebuilt checkout page

Checkout 价格迁移指南

了解如何升级您的集成来使用 Stripe Checkout 的价格功能。

Prices API 增加了新功能,提高了对客户收款的灵活性。此新的集成提供:

  • 更一体化的 Checkout 项目模型——不再使用方案、SKU 和内联行项目,每个项目现在都是一个_price_(价格)。
  • 能够为重复出现的项目呈现产品图片。
  • 创建可重复使用的产品和价格目录,而非一次性行项目。
  • 为订阅创建内联定价。
  • 为订阅和一次性付款应用动态税率。

不想迁移?您可以继续使用当前的集成,但不支持新功能。您可以使用在现有 API 调用的 plan 参数中创建的任何新计划或定期价格。

产品和价格概览

Prices 是 Stripe 内一个新的核心实体,可以与订阅、账单及 Checkout 一起使用。每个价格都会绑定到一个产品,而每个产品可以有多个价格。不同的实物商品或服务等级都应该用产品来表示。此产品的定价应该用价格来表示。

Prices 定义了基准价格、货币以及计费周期(以定期购买的产品为例)。这样即可在不更改提供的商品或服务的情况下更改和添加价格。例如,您可能有个“黄金”产品,其价格为 10 美元/月、100 美元/年、9 欧元/月以及 90 欧元/年。或者,您可能有一款蓝色 T 恤,价格为 20 美元和 15 欧元。

一次性付款

一次性付款的集成有以下变化:

  • 不再是临时的行项目(即设置名称、金额和货币),创建 Checkout Session 时要求创建 product,而且通常要创建 price。
  • 现在要求使用 mode。

客户端代码保持不变。

映射表

不需要再定义 line_items 的每个字段,Checkout 会用相关的产品和价格对象来确定名称、描述、金额、货币和图片。您可以用 API 或管理平台来创建产品和价格。

不使用 PRICES使用 PRICES
line_items.nameproduct.name
line_items.descriptionproduct.description
line_items.amount
  • price.unit_amount
  • price_data.unit_amount(如果在创建 Checkout Session 时定义了它)
line_items.currency
  • price.currency
  • price_data.unit_amount(如果在创建 Checkout Session 时定义了它)
line_items.imagesproduct.images(显示提供的第一张图片)

内联项目的服务器端代码

以前,您可能只能创建一次性项目内联。有了 Prices,您可以继续配置您的项目内联,但在创建 Checkout Session 时,您也可以用 price_data 动态定义您的价格。

用 price_data 创建 Checkout Session 时,通过 price_data.product 引用现有产品的 ID,或用 price_data.product_data 动态定义您的产品详情。以下示例演示一次性项目的创建流程。

Command Line
curl
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "line_items[0][quantity]"=1 \ -d "line_items[0][amount]"=2000 \ -d "line_items[0][name]"=T-shirt \ -d "line_items[0][description]"="Comfortable cotton t-shirt" \ -d "line_items[0][images][]"="https://example.com/t-shirt.png" \ -d "line_items[0][currency]"=usd \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][product_data][description]"="Comfortable cotton t-shirt" \ -d "line_items[0][price_data][product_data][images][]"="https://example.com/t-shirt.png" \ -d "line_items[0][price_data][currency]"=usd \ -d mode=payment \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

一次性价格的服务器端代码

通过这种新的集成,您可以事先创建一个产品和价格目录,而无需每次创建 Checkout Session 时都定义金额、货币和名称。

您既可以通过 Prices API,也可以通过管理平台来创建产品和价格。创建 Checkout Session 需要使用价格 ID。下例演示了如何通过 API 创建产品和价格。

Command Line
curl
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d name=T-shirt \ -d description="Comfortable cotton t-shirt" \ -d "images[]"="https://example.com/t-shirt.png" curl https://api.stripe.com/v1/prices \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d product="{{PRODUCT_ID}}" \ -d unit_amount=2000 \ -d currency=usd curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "line_items[0][quantity]"=1 \ -d "line_items[0][amount]"=2000 \ -d "line_items[0][name]"=T-shirt \ -d "line_items[0][description]"="Comfortable cotton t-shirt" \ -d "line_items[0][images][]"="https://example.com/t-shirt.png" \ -d "line_items[0][currency]"=usd \ -d "line_items[0][price]"="{{PRICE_ID}}" \ -d mode=payment \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

订阅

经常性付款的集成有以下变化:

  • 所有项目都被传递到一个 line_items 字段,而非 subscription_data.items。
  • 现在要求使用 mode。如果会话中包含任何经常性项目,则设置 mode=subscription。

客户端代码保持不变。在接受经常性价格时可以使用现有方案。

使用方案情况下的服务器端代码

这里是一个升级前后创建包含试用且使用现有方案(可以与 Price 互换使用)的 Checkout Session 的示例。该方案现已传递到 line_items 内,而非 subscription_data.items。

Command Line
curl
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "subscription_data[items][][plan]"="{{PRICE_OR_PLAN_ID}}" \ -d "line_items[0][price]"="{{PRICE_OR_PLAN_ID}}" \ -d "line_items[0][quantity]"=1 \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

有设置费的经常性价格的服务器端代码

如果您有收取一次性设置费的经常性方案,则先创建一个表示一次性费用的产品和价格,然后再创建 Checkout Session。查看映射表,了解 line_items 字段与新集成的映射关系。您既可以通过 Prices API,也可以通过 Stripe 管理平台来创建产品和价格。您也可以创建一次性项目内联。下面的示例使用的是现有的价格 ID:

Command Line
curl
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "line_items[0][quantity]"=1 \ -d "line_items[0][amount]"=2000 \ -d "line_items[0][name]"=T-shirt \ -d "line_items[0][description]"="Comfortable cotton t-shirt" \ -d "line_items[0][images][]"="https://example.com/t-shirt.png" \ -d "line_items[0][currency]"=usd \ -d "subscription_data[items][][plan]"="{{PLAN_ID}}" \ -d "line_items[0][price]"="{{PRICE_OR_PLAN_ID}}" \ -d "line_items[0][quantity]"=1 \ -d "line_items[1][price]"="{{ONE_TIME_PRICE_ID}}" \ -d "line_items[1][quantity]"=1 \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

响应对象的变化

Checkout Session 对象使用 line_items 列出项目,不再使用 display_items。默认情况下,line_items 字段与 display_items 呈现方式不同,但您可以在创建 Checkout Session 时使用扩展 将其包含在内:

Command Line
curl
Stripe CLI
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="card" \ -d "mode"="payment" \ -d "line_items[0][price]"="{{PRICE_ID}}" \ -d "line_items[0][quantity]"=1 \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel" \ -d "expand[]"="line_items"

Webhook 的变化

由于 line_items 可以包含在内,checkout.session.completed webhook 响应中将不再默认列出项目。响应对象变小以后,可以让您更快地接收 Checkout webhooks。您可以用新的 line_items 端点检索项目。

Command Line
curl
Stripe CLI
No results
curl https://api.stripe.com/v1/checkout/sessions/{{CHECKOUT_SESSION_ID}}/line_items \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

更多详情,请查看通过 Checkout 履行订单。

此页面的内容有帮助吗?
是否
  • 需要帮助?联系支持。
  • 查看我们的更改日志。
  • 有问题?联系销售。
  • LLM? Read llms.txt.
  • Powered by Markdoc