基于 Charges API 的银行卡付款旧版
了解如何用 Stripe 的旧版 API 对银行卡执行扣款、保存及验证操作。
旧版 API
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
Charges API 不支持以下功能,信用卡合规对其中很多都有要求:
Charges 和 Tokens API 为旧版 API,用于以前的 Stripe 集成中来接受借记卡和信用卡付款。对于新的集成,请使用 PaymentIntents。
Charges API 会限制您使用 Stripe 功能的能力。要获得最新功能,请使用 Stripe Checkout 或迁移到 Payment Intents API。
付款流程
多数情况下,PaymentIntents API 提供更大的灵活性和更多的集成选项。
Charges API | Payment Intents API |
---|---|
|
|
退款
要通过 API 发放退款,请创建一个 退款,并提供要退还的收款的 ID。
要退还某笔付款的一部分,提供一个 amount
参数,以美分作为整数(或收款币种的最小货币单位)。
Apple Pay
您的客户批准付款时,您的应用会收到一个 PKPayment 实例,其中包含他们通过实施 PKPaymentAuthorizationViewControllerDelegate 方式而加密的银行卡详情。
- 使用 createTokenWithPaymentSDK 方法将
PKPayment
变成一个 StripeToken
- 用此
Token
创建收款。
动态账单描述符
默认情况下,您的 Stripe 的对账单描述符会在您对客户的银行卡扣款后显示在其对账单上。此外,您可以通过在 Charge 对象上使用 statement_
函数为每个收款请求动态设置对账单描述符。
对账单描述符最多为 22 个字符,不能使用 <
、>
、'
、"
或 *
这些特殊字符,且不能只包含数字。
动态设置信用卡和借记卡收款的对账单描述符时,动态部分会附加到结算商家的对账单描述符(用 *
和空格分割)。例如,有一家 FreeCookies 公司,其对账单描述符中包含购买的甜点的种类,则可能是 FREECOOKIES* SUGAR
。
*
和空格算在这 22 个字符限制内,Stripe 自动为动态对账单描述符分配 10 个字符。这意味着,如果结算商家的描述符大于 10 个字符,则会被缩短(假设动态对账单描述符也大于 10 个字符的话)。如果动态对账单描述符也大于 10 个字符,则两个描述符都会缩短为 10 个字符。
如果您在字符限制方面有问题,可以在 Stripe 管理平台内设置一个简短描述符,缩短结算商家的描述符。这样可以为动态对账单描述符留出更多空间。简短描述符:
- 使用动态描述符时替换结算商家的对账单描述符。
- 可以介于 2 到 10 个字符之间。
备注
如果您账户的对账单描述符超过 10 个字符,则在管理平台设置一个简短描述符或使用 statement_
。这样可防止您的对账单描述符被意外缩短。
如果您不确定组合之后的对账单描述符具体是什么样子,可以在 Stripe 管理平台查看。
在元数据内存储信息
Stripe 支持向您的常见请求(例如处理收款)中添加元数据。元数据不会向客户显示,也不会构成我们的欺诈预防系统拒绝或阻止收款的依据。
通过元数据,您可以向 Stripe 活动关联其他信息(对您自身有意义)。您包含的任何元数据都可以在管理平台内查看(例如,查看单笔收款的页数时),并且可用于常见的报告和导出结果中。举例来说,可以将您店铺的订单 ID 绑定到用来收取该订单付款的那笔收款。这样做的话,您、您的会计或您的财务团队都能很方便地核对 Stripe 内的收款与您系统内的订单。
如果您使用的是 Radar,则考虑以元数据形式传递任何额外的客户信息和订单信息。这样做的话,您便可以编写使用元数据属性的 Radar 规则,并在管理平台内得到有关付款的更多信息,进而加速您的审核流程。
注意
不要以元数据形式或在收款的 description
参数中存储任何敏感信息(个人身份信息、银行卡详情等)。
拒付
如要让您的集成应用自动响应付款失败的情况,可以通过两种方式访问扣款的 outcome
。