调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
财务自动化
平台和交易市场
资金管理
开发人员工具
开始
付款
财务自动化
开始
付款
财务自动化
平台和交易市场
资金管理
概览
关于 Stripe 支付
    概览
    货币
    拒付
    提现
    经常性付款
    3DS 验证
    退款并取消付款
    余额和结算时间
    收据
    处理 webhook 事件
    强客户认证准备
升级您的集成
支付分析
线上付款
概览查找您的用例Managed Payments
使用 Payment Link
构建结账页面
构建高级集成
构建应用内集成
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付接口
Payment Links
结账
Web Elements
应用内 Element
支付场景
自定义支付流程
灵活收单
编排
线下支付
Terminal
其他 Stripe 产品
Financial Connections
加密货币
Climate
首页付款About Stripe payments

用 Webhook 触发操作

如何用 Webhook 响应离线支付事件。

复制页面

Webhook 是一个 HTTP 端点,用于从 Stripe 接收事件。

通过 Webhook,您可以接收付款流程以外发生的支付事件的通知,例如:

  • 成功的付款 (payment_intent.succeeded)
  • 有争议的付款 (charge.dispute.created)
  • Stripe 账户可用余额 (balance.available)

您可以使用管理平台进行一次性操作,例如退款或更新客户信息,尽管 Webhook 可以扩展您的支付集成和处理大量重要业务事件。

构建自己的 Webhook

可在自己的服务器上构建一个 Webhook 处理程序,用以管理您的所有线下付款流程。首先公开一个可以接收 Stripe 的请求的端点并用 CLI 在本地测试您的集成。来自 Stripe 的每个请求都会包含一个 Event 对象,其中引用了 Stripe 上修改的对象。

创建 Webhook 端点

在您的应用中添加新端点。您可通过检查请求体内发送的事件对象的 type 字段来操作某些事件。然后,您可以通过标准输出打印,确保您的 Webhook 能正常工作。

添加完新的端点后启动服务器。

Ruby
# 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'
require 'stripe' require 'sinatra' require 'json' # Using the Sinatra framework set :port, 4242 post '/webhook' do payload = request.body.read event = nil begin event = Stripe::Event.construct_from( JSON.parse(payload, symbolize_names: true) ) rescue JSON::ParserError => e # Invalid payload status 400 return end # Handle the event case event.type when 'payment_intent.succeeded' payment_intent = event.data.object # contains a Stripe::PaymentIntent puts 'PaymentIntent was successful!' when 'payment_method.attached' payment_method = event.data.object # contains a Stripe::PaymentMethod puts 'PaymentMethod was attached to a Customer!' # ... handle other event types else puts "Unhandled event type: #{event.type}" end status 200 end

安装并设置 Stripe CLI

Command Line
homebrew
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

For additional install options, see Get started with the Stripe CLI.

如果您安装着 Stripe CLI,则在命令行中运行 stripe login,生成一个配对代码来关联到您的 Stripe 账户。按回车启动浏览器,登入您的 Stripe 账户来允许访问。生成的 API 有效期为 90 天。可在管理平台的 API 密钥下修改或删除密钥。

注意

您可以创建项目特定的配置,方法是在登录时和运行该项目的命令时包含 –project-name 标志。

测试

Command Line
stripe login Your pairing code is: humour-nifty-finer-magic Press Enter to open up the browser (^C to quit)

如果要使用现有的 API 密钥,则使用 --api-key 标志:

Command Line
stripe login --api-key
sk_test_BQokikJOvBiI2HlWgH4olfQ2
Your pairing code is: humour-nifty-finer-magic Press Enter to
open up the browser (^C to quit)

在本地测试 Webhook 端点

通过 listen 指令,用 CLI 将事件转到您的本地 Webhook 端点。

假设您的应用的运行端口是 4242,运行:

Command Line
stripe listen --forward-to http://localhost:4242/webhook

在另一个终端选项卡中,用 trigger CLI 指令触发一个模拟 Webhook 事件。

Command Line
stripe trigger payment_intent.succeeded

您的 listen 选项卡中会显示以下事件:

Command Line
[200 POST] OK payment_intent.succeeded

“PaymentIntent 已成功!”出现在您的服务器运行的终端选项卡中。

可选检查 Webhook 签名

部署 Webhook 端点

准备好将 Webhook 端点部署到生产时,您需要进行以下操作:

  1. 使用您的真实模式 API 密钥,不要使用测试模式的密钥。

  2. 在 Stripe 管理平台或用 API 配置 Webhook 端点。

在管理平台中配置端点时,请前往您的 Webhook 设置。

点击添加端点并输入您的端点的 URL、Stripe API 版本以及您想让 Stripe 发送的特定事件。

用管理平台内的端点视图中显示的新密钥替换掉您的应用中的 Webhook 端点。

您的应用现在可以进行真实事件了。有关配置 Webhook 端点的详细信息,请参阅 Webhook Endpoint API。要在沙盒中进行测试,请参阅我们的开发指南。

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