Setup Intents API
用 Setup Intents API 设置一个未来付款用的支付方式。与付款类似,但不用创建收款。立即设置供未来付款用的支付方式。
目标是保存支付证书,并为未来付款进行优化,也就是为任何支付场景正确配置支付方式。以设置银行卡为例,可能有必要通过客户的银行验证客户或检查卡的有效性。Stripe 在整个过程中更新 SetupIntent
对象。
保存并重新使用支付方式
Setup Intents API 尤其适用于那些入驻了客户但不立即对其扣款的公司:
- 一家汽车租赁公司,在客户租车前收集支付方式详情,租期结束后再对银行卡扣款。
- 一个众筹网站,先收集银行卡信息,之后活动达到某一特定金额时才扣款。
- 一家公用事业公司,每月根据用量扣取不同金额,但是要在第一个月付款前收集 SEPA 支付信息。
备注
您也可以用 Checkout 设置供未来使用的支付方式。
开始
获取保存支付方式的许可
合规
在保存客户的支付详情时,您需要负责遵守所有适用的法律、法规和卡组织规则。如果您为未来的会话内付款设置某种支付方式,例如在未来的结账页面上显示支付方式,则务必要明确取得客户就这一特定用途的同意书。例如,包含“保存我的支付方式以供未来使用”复选框以收集用户同意书。如果需要区分仅供离线使用的支付方式和可以向客户显示的供未来会话内购物使用的支付方式,则可以使用 PaymentMethod 对象上的 allow_redisplay 参数。
如果您设置一个支付方式用于未来的会话外付款,则您需要获得许可。事先制作一份协议(有时候叫做_授权_)后您便可以在客户不经常使用您的网站或应用的情况对其进行扣款。
在您的网站或应用中添加条款,陈明您计划如何处理付款,并让客户同意加入。条款中至少要包含以下几点:
- 客户给予您代其发起一次或一系列付款的许可
- 预计的付款频率(即一次性或经常性)
- 如何确定付款金额
请查看针对保存银行卡或保存 SEPA 银行详情推荐的授权文本。
对于受 SCA 影响的用户,该协议可确保付款顺利成功。在您设置了您的集成可以正确保存银行卡之后,Stripe 会将后续的任何会话外付款标为商家发起的交易 (MIT),这样客户便不需要再回到线上并进行验证了。处理商家发起的交易时需要有您与客户之间签订的协议
指明使用方式,增大成功率
usage 参数可告知 Stripe 您今后计划如何使用保存的支付方式详情。对于某些支付方式,Stripe 可利用您的 usage
设置为客户选取最顺畅的流程。这种优化的目的在于增加成功付款的次数。
例如,欧洲的 SCA 规范监管下的信用卡和借记卡可能需要客户在保存过程中对银行卡进行验证。将 usage
设置到 off_session
,可为会话外付款正确验证信用卡或借记卡,客户便可以不回到线上再重新验证。虽然在最初的设置流程中会带来一些阻力,但是将 usage
设置到 off_session
可让客户在后续的会话外付款时更加轻松。
但是,如果您只计划在客户结账时用卡,则将 usage
设置到 on_session
。这样银行就会知道您只会在客户能够进行验证的时才使用银行卡,因此您可以将银行卡详情的验证推迟到这个时候,避免前期造成的阻力。
您打算如何用卡 | 要使用的用法枚举值 |
---|---|
仅会话内付款 | on_session |
仅会话外付款 | off_session (默认) |
会话内与会话外这两种付款方式 | off_session (默认) |
注意,usage
实则是一种优化。设置用于会话内付款的银行卡仍可用于进行会话外付款,但银行很有可能拒绝会话外付款,并要求客户进行额外的验证。无论哪种情况,后续都有可能要求验证,因此要在您的应用中创建一个恢复流程。当会话外银行卡付款要求验证时,让您的客户回到线上,完成付款。
如果未指定,则 usage
默认为 off_session
。查看如何在您的服务器上创建 SetupIntent 并指定 usage
:
备注
请按照该页的指南操作,确保您的集成能够处理要求强客户认证的银行卡。正确标记交易有助于 Stripe 代您正确申请 SCA 豁免,将每笔付款的验证要求降到最低。