调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
概览查看所有产品
开始构建
开始开发
    设置开发环境
    发送您的第一个 API 请求
    收款
    构建并测试新功能
    上线前检查表
关于 API
用 LLM 构建
在无代码的情况下使用 Stripe
设置 Stripe
创建账户
网页端管理平台
移动端管理平台
迁移到 Stripe
首页开始Start developing

收款

安全地在线上收款。

制作支付表单或使用预构建的结账页面来开始接收线上付款。

用 Stripe Checkout 重定向到 Stripe 托管的支付页面。看看这个集成与 Stripe 的其他集成类型的对比情况。

Checkout 预览

集成难度

低代码

集成类型

重定向到 Stripe 托管的支付页面

用户界面自定义

限制性自定义

尝试一下吧

首先,注册一个 Stripe 账户。

用我们的官方库从您的应用程序访问 Stripe API:

Command Line
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

将客户重定向到 Stripe Checkout
客户端
服务器端

在您的网站上添加一个结账按钮,调用一个服务器端点来创建 Checkout Session。

您还可以为现有客户创建 Checkout Session,从而用已知联系信息预填 Checkout 字段,并统一该客户的购买记录。

checkout.html
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Checkout Session 是客户被重定向到支付表单时所看到的内容的程序化展示。可通过多种选项对它进行配置,例如:

  • 要扣款的 Line items
  • 可用货币

您必须在 success_url 填充您的网站上某个页面的 URL 值(Checkout 在客户完成付款后会将其返回到此页面)。还可以选择提供您网站上某个页面的 cancel_url 值(如果客户在完成前终止付款流程,Checkout 会将其返回到此页面)。

注意

Checkout Sessions 默认在创建后 24 小时后过期。

创建完 Checkout Session 后,将您的客户重定向到响应中返回的 URL。

Ruby
Python
PHP
Java
Node
Go
.NET
No results
# This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', }) redirect session.url, 303 end

支付方式

默认情况下,Stripe 支持银行卡及其他主流支付方式。您可以在 Stripe 管理平台中开启或关闭个别支付方式。在 Checkout 中,Stripe 评估货币和任何限制,然后动态向客户显示支持的支付方式。

要查看您如何向客户显示支付方式,请在管理平台中输入交易 ID 或设置订单金额和货币。

您可以在您的支付方式设置中启用 Apple Pay 和 Google Pay。默认情况下,Apple Pay 处于启用状态,Google Pay 处于禁用状态。但在某些情况下,即使已启用这些功能,Stripe 仍会将其过滤。如果您启用自动计税但未收集收货地址,我们将过滤 Google Pay。

Checkout 的 Stripe 托管页面不需要修改集成即可启用 Apple Pay 或 Google Pay。Stripe 处理这些付款的方式与处理其他银行卡付款的方式完全一样。

确认您的端点

启动您的网页服务器(例如 localhost:4242)并运行下列指令,以确认您的端点:

Command Line
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""

在您的终端应该会看到类似于下面的响应:

Command Line
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...

测试

现在,您的结账按钮应该可以使用了,能够将客户重定向到 Stripe Checkout。

  1. 点击结账按钮。
  2. 您会被重定向到 Stripe Checkout 支付表单。

如果您的集成不能用:

  1. 打开浏览器开发人员工具上的 Network 面板。
  2. 点击结账按钮,确认它向您的服务器端点 (POST /create-checkout-session) 发送了 XHR 请求。
  3. 验证该请求是否返回状态码 200。
  4. 用按钮点击监听器内的 console.log(session) 确认返回的数据是否正确。

显示成功页面
客户端
服务器端

客户成功提交支付表单息后,一定要能够看到成功页面,这一点非常重要。在您的网站上托管此成功页面。

创建一个最小的成功页面:

success.html
<html> <head><title>Thanks for your order!</title></head> <body> <h1>Thanks for your order!</h1> <p> We appreciate your business! If you have any questions, please email <a href="mailto:orders@example.com">orders@example.com</a>. </p> </body> </html>

接下来,更新 Checkout Session 创建端点,使用此新的页面:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="http://localhost:4242/success.html" \ --data-urlencode cancel_url="http://localhost:4242/cancel.html"

注意

如果要自定义您的成功页面,请阅读自定义成功页面指南。

测试

  1. 点击结账按钮。
  2. 用测试卡信息填写付款详情:
    • 输入 4242 4242 4242 4242 作为卡号。
    • 输入一个任意的未来日期作为有效期。
    • 输入 3 位数 CVC(银行卡安全码)。
    • 输入账单地址邮编。
  3. 点击支付。
  4. 系统会将您重定向到新的成功页面。

接下来,去 Stripe 管理平台找到新的付款。管理平台的付款列表中会显示成功的付款。点击某笔付款,会进入付款详情页面。Checkout 摘要部分包含账单信息和购买项目列表,可用于人工履行订单。

处理付款后事件

当客户完成 Checkout Session 付款时,Stripe 会发送一个 checkout.session.completed 事件。使用管理平台 Webhook 工具或按照 Webhook 指南接收和处理这些事件,这可能会触发您:

  • 向客户发送订单确认邮件。
  • 在数据库中记录销售情况。
  • 启动配送流程。

请侦听这些事件而非等待客户被重定向回您的网站。仅依赖 Checkout 着陆页触发履约是不可靠的。设置您的集成来侦听异步事件,这样才能用单一集成接受不同类型的支付方式。

详情请参阅我们的 Checkout 履约指南。

使用 Checkout 收款时需处理以下事件:

活动描述行动
checkout.session.completed当客户成功完成 Checkout Session 时发送。向客户发送订单确认,并履行他们的订单。
checkout.session.async_payment_succeeded当使用延迟型支付方式(如 ACH 直接借记)付款成功时发送。向客户发送订单确认,并履行他们的订单。
checkout.session.async_payment_failed当使用延迟型支付方式(如 ACH 直接借记)付款失败时发送。通知客户支付失败并引导其返回会话重新尝试支付。

测试您的集成

要测试您的 Stripe 托管的支付表单集成:

  1. 创建一个 Checkout Session。
  2. 使用下表中的方法填写付款详情。
    • 输入一个任意的未来日期作为有效期。
    • 输入 3 位数 CVC(银行卡安全码)。
    • 输入账单地址邮编。
  3. 点击支付。您被重定向到您的 success_url。
  4. 前往管理平台,在付款页面上查找付款。如果您付款成功,就会在列表中看到它。
  5. 点击您的付款,查看更多详情,例如包含账单信息和已购商品列表的 Checkout 摘要。您可以此信息来履行订单。

了解有关测试您的集成的更多信息。

卡号场景如何测试
该卡付款成功,不需要验证。使用信用卡号以及有效期和 CVC 和邮编填写我们的信用卡表单。
该卡付款时需要验证。使用信用卡号以及有效期和 CVC 和邮编填写我们的信用卡表单。
该卡被拒绝,显示拒付代码,例如 insufficient_funds。使用信用卡号以及有效期和 CVC 和邮编填写我们的信用卡表单。
银联卡的长度为 13-19 位。使用信用卡号以及有效期和 CVC 和邮编填写我们的信用卡表单。

有关测试您的集成的更多信息,请参阅测试部分。

测试卡

卡号描述
成功并且立即处理付款。
完成 3DS 2.0 验证后才能成功付款。
始终会失败,显示拒付码 insufficient_funds。

可选创建产品和价格

可选预填充客户数据
服务器端

可选保存支付方式详情
服务器端

可选单独授权和捕获
服务器端

可选客户账户管理
无代码

另见

  • 添加折扣
  • 收税
  • 收集税号
  • 添加收货地址
  • 自定义品牌
此页面的内容有帮助吗?
是否
  • 需要帮助?联系支持。
  • 加入我们的早期使用计划。
  • 查看我们的更改日志。
  • 有问题?联系销售。
  • LLM? Read llms.txt.
  • Powered by Markdoc
Code quickstart
相关指南
Elements Appearance API
更多支付场景
卡的工作原理