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

收款

安全地在线上收款。

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

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

Checkout 预览

集成难度

低代码

集成类型

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

用户界面自定义

限制性自定义

尝试一下吧

First, register for a Stripe account.

Use our official libraries to access the Stripe API from your application:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# 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
# 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
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
更多支付场景
卡的工作原理
使用的产品
Payments
Elements
Checkout