调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
财务自动化
平台和交易市场
资金管理
开发人员工具
开始
付款
财务自动化
开始
付款
财务自动化
平台和交易市场
资金管理
概览
关于 Stripe 支付
升级您的集成
支付分析
线上付款
概览查找您的用例Managed Payments
使用 Payment Link
构建结账页面
    概览
    快速开始
    自定义外观样式
    收集额外信息
    收税
    动态更新结账流程
    管理产品目录
    订阅
    管理支付方式
    让客户用本地货币支付
    添加折扣、追加销售和可选商品
    设置未来付款
    支付过程中保存付款详情
    Manually approve payments on your server
    付款后
    具有 Checkout Sessions API Beta 更改日志的 Element
    从传统 Checkout 迁移
    迁移 Checkout 来使用 Prices
构建高级集成
构建应用内集成
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付接口
Payment Links
结账
Web Elements
应用内 Element
支付场景
自定义支付流程
灵活收单
编排
线下支付
Terminal
其他 Stripe 产品
Financial Connections
加密货币
Climate
首页付款Build a 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
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
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
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
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 时用 expand 将它包含在内。

Command Line
curl
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
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