调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
概览查看所有产品
开始构建
开始开发
关于 API
    API 一览
    Payment Intents API
    Setup Intents API
    PaymentIntents 和 SetupIntents 如何运作
    Payment Methods API
    产品和价格
    发布阶段
用 LLM 构建
在无代码的情况下使用 Stripe
设置 Stripe
创建账户
Stripe 管理平台
迁移到 Stripe
首页开始About the APIs

Payment Methods API

了解驱动一系列全球支付方式的 API。

利用 Payment Methods API,可通过单一 API 接受多种支付方式。PaymentMethod 对象包含创建付款所需的支付方式详情。利用 Payment Methods API,您可以组合 PaymentMethod:

  • 用 PaymentIntent 收款
  • 用 SetupIntent 和 Customer 保存付款详情供以后使用

支持的支付方式

要确定某个具体地点使用哪种支付方式,请查看支付方式指南。

该指南包括不同地区可以使用的支付方式、每种支付方式特征的详细说明以及它们最相关的地理区域。您可以在管理平台中启用任何可用的支付方式。激活通常是即时的,不需要额外的合同。

客户操作

某些支付方式要求您的客户采取额外的步骤来完成付款。PaymentIntent 对象的 next_action 参数指定了客户操作的类型。

客户需要采取的一些常见操作有:

  • 重定向到他们银行的线上服务页面来验证并批准付款。
  • 通过提供您发布到 Stripe API 的一次性验证码(例如微存款)来验证账户的所有权。
  • 通过他们银行的线上服务页面推动资金(例如银行转账的情况)。

并非所有支付方式都要求额外的客户操作。例如,银行卡付款(要求 3DS 验证的除外)要求在收集完银行卡详情后再进一步验证。

注意

对于需要客户操作的支付方式,配置 Webhook 接收端来接收付款成功或失败的通知。

付款成功的立即或延迟通知

有些支付方式会在尝试交易后立即返回付款状态(例如银行卡付款),但其他方式会有一个延迟,例如 ACH 借记。对于那些立即返回付款状态的支付方式,PaymentIntent 状态会变为 succeeded 或 requires_payment_method。succeeded 状态保证您可以从客户收到资金。

延迟通知型支付方式在延迟期间不保证支付。PaymentIntent 对象的状态会是 processing,直至付款状态成功或是失败。这段时间内,很多商家会保持处于_待处理_状态的订单,等待付款成功后再履行订单。

注意

​​对于延迟通知型支付方式,请配置 Webhook 端点以通知付款是否成功。

一次性使用或重复使用

您可以重复使用某些支付方式(例如银行卡或银行借记)进行额外的付款,不需要再次授权和收集支付详情。

为减少未来的银行拒付和支付阻力(例如要求的验证),您应该始终设置可重复使用的支付方式以供未来使用。对于可重复使用的支付方式,可以在接受付款时设置以供未来使用,也可以在不接受付款的情况下设置以供将来使用。

单次使用的支付方式(例如某些类型的银行转账)不能绑定到客户,因为在尝试付款后即作废。

用 Webhook 跟踪付款状态

通过为需要客户操作或付款通知延迟时的付款方式创建 Webhook 端点或其他类型的事件接收端 来配置 Webhook。Stripe 在 PaymentIntent 状态更新时发送以下事件:

事件描述后续步骤
payment_intent.processing客户的付款已成功提交至 Stripe。仅适用于延迟通知型支付方式。等待发起的付款成功或失败
payment_intent.succeeded付款成功。交付购买的商品或服务。
payment_intent.payment_failed付款失败了。发送邮件或推送通知,要求客户使用另一支付方式。

除设置事件接收端外,您也可以用以下选项构建来侦听事件:

  • 如果您的公司使用延迟通知型支付方式的交易较少,则可在 Stripe 管理平台中手动跟踪付款的状态。通过管理平台可以查看您的所有 Stripe 付款,发送邮件收据,处理提现或重试失败的付款。
  • 使用轮询(例如,重复检索某个 PaymentIntent 以查看其状态)。请注意,轮询的可靠性要低很多,而且不适合规模操作。Stripe 还对 API 请求有强制性的速率限制,因此在使用轮询方法时,一定要格外小心。
  • 通过集成合作伙伴的应用程序,使用它们来处理常见的业务事件,比如自动化或市场与销售。

PaymentMethod 对象

PaymentMethod 中包含创建付款时可重复使用的支付方式详情(例如银行卡到期日或账单地址),不包含特定交易信息(例如金额、货币)。PaymentMethod 会绑定到 PaymentIntent,用以表示付款生命周期中的状态。每个 PaymentMethod 都有一个类型属性(例如 "type": "sepa_debit")和一个名称与类型相匹配的额外散列,并包含 PaymentMethod 类型的特定信息(例如 "sepa_debit":{})。sepa_debit PaymentMethod 对象示例:

{ "id": "pm_123456789", "object": "payment_method", "billing_details": { "address": {...}, "email": "jenny@example.com", "name": "Jenny Rosen", "phone": "+335555555555" }, "sepa_debit": { "bank_code": "37040044", "branch_code": "94832", "country": "FR", "fingerprint": "ygEJfUjzWMGyWnZg", "last4": "3000" }, "type": "sepa_debit", (...) }

注意

为安全地处理敏感支付信息并自动处理客户操作,Stripe 建议您用 Stripe.js 创建支付方式。

另见

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