- 集成指南
- PSD2 SCA 合规与豁免
- 针对 PSD2 SCA 的 Hosted Checkout 集成
针对 PSD2 SCA 的 Hosted Checkout 集成
此页介绍支持 Hosted Checkout 集成的 PSD2 SCA 合规与豁免的集成工作。 在继续构建您的集成之前,建议您先熟悉一下 PSD2 SCA 合规与豁免。
支持的豁免
网关目前支持以下豁免:
- 低风险
- 低价值
- 白名单
- 定期付款
- 安全公司支付
先决条件
要遵守 PSD2 SCA 要求,您需要向 Hosted Checkout 添加 3DS 支付验证支持。
要通过网关使用 PSD2 SCA 豁免功能:
- 您的 your payment service provider 必须为您要使用的 PSD2 豁免启用并配置您在网关上的商家配置文件。
- 您不能配置任何 3D 验证交易筛选规则。
- 您必须将 Hosted Checkout 与网关集成以使用 3DS2。
- 您必须提交 Create Checkout Session 请求来使用版本 57 或更高版本发起 Hosted Checkout 交互。
您应在 发起身份验证时提交尽可能多的付款人和交易信息。 这会增加发卡机构准予或实施豁免的可能性。
请求付款人身份验证
如果您希望 Hosted Checkout 对付款人进行身份验证(不申请豁免),您无需对现有的 Hosted Checkout 与 3DS 支付验证支持的集成进行任何更改。 如果 PSD2 SCA 适用于交易,发卡机构将向付款人呈现 3DS 质询,或实施发卡机构豁免,后一种情况下付款人将经历无障碍结账流。
在这两种情况下,网关都会自动将发卡机构在身份验证响应中提供的身份验证详细信息添加到提交给收单行处理的付款请求中。
请求付款人身份验证时申请豁免
您可以通过将带有以下值之一的字段 authentication.psd2.exemption 添加到 Create Checkout Session 请求中来申请豁免:
- LOW_RISK
- LOW_VALUE_PAYMENT
- SECURE_CORPORATE_PAYMENT
如果您未启用申请的豁免,请求将像您未申请豁免一样处理。 发卡机构可以:
- 准予您申请的豁免,
- 实施发卡机构豁免,或
- 拒绝您申请的豁免,也不实施发卡机构豁免。
如果您的收单行或组织不支持豁免,将进行特殊处理。
| 情景 | 描述 |
|---|---|
| 发卡机构准予收单行豁免 | 如果发卡机构准予您申请的豁免,
|
| 发卡机构实施发卡机构豁免 | 如果发卡机构实施发卡机构豁免,
|
| 发卡机构不准予或实施豁免 | 如果发卡机构不准予您申请的豁免,也不实施发卡机构豁免,
|
| 收单行不支持 PSD2 豁免 | 如果收单行(后续将用于处理付款)不支持 PSD2 豁免,网关将像未申请豁免一样处理身份验证,
|
| 此组织不支持 PSD2 豁免 | 目前仅 Mastercard 和 Visa 支持在执行身份验证时申请豁免。 如果网关不支持为组织请求 PSD2 豁免,网关将继续,不会执行 3DS,然后会在提交付款由收单行进行处理时自动请求豁免。 |
提交付款时申请豁免
Hosted Checkout 不支持在付款时绕过 3DS 身份验证和申请豁免。您可以通过在 Create Checkout Session 请求中提交 interaction.action.3DSecure=BYPASS 来绕过 3DS 身份验证。 但是,如果发卡机构未准予豁免且未实施发卡机构豁免,付款将不会成功。当由于缺少 PSD2 SCA 要求的付款人身份验证导致付款失败时,Hosted Checkout 不会执行 3DS 身份验证。 付款人将看到一个页面,告诉他们付款未成功。
仅使用网关进行身份验证
Hosted Checkout 不支持只执行付款人身份验证,不处理付款。 如果您只想要使用网关来执行身份验证,必须使用 Direct Payment 集成。
白名单
Hosted Checkout 不支持请发卡机构向付款人提供将您加入白名单(卡白名单)的选项。 但是,如果您知道付款人已将您列入白名单,您可以通过将 authentication.psd2.exemption=WHITELISTED_MERCHANT 添加到 Create Checkout Session 请求中来申请实施白名单豁免。
发卡机构将验证付款人是否已将您列入白名单,然后:
- 准予豁免(付款人经历无障碍流)并返回成功身份验证的身份验证详细信息,或
- 不准予豁免,向付款人呈现质询流。
如果付款人已将您列入白名单,当您继续处理付款,不对付款人执行身份验证时,发卡机构可能准予豁免或拒绝交易请求。
商家发起的付款
如果您需要遵守 PSD2 SCA 要求,则不能在系列商家发起付款(包括固定金额的定期付款)中为持卡人发起付款使用 Hosted Checkout。 对于这些付款,您必须通过 3DS 质询执行付款人身份验证。 但是,Hosted Checkout 当前不支持执行 3DS 质询 — 不能在 Create Checkout Session 请求中提供字段 authentication.challengePreference。
测试您的集成
您可以使用测试商家配置文件(您的商家 ID,前缀为“TEST”)测试集成。 以下各部分提供可用于触发特定响应的测试卡号的详细信息。
要触发指示发卡机构准予您申请的豁免的响应:
- 提交包含以下字段的 Create Checkout Session 请求:
对于 63 以上的 API 版本,使用 Initiate Checkout Session,而不是 Create Checkout Session。
apiOperation=CREATE_CHECKOUT_SESSIONauthentication.psd2.exemption,设置为以下值之一:
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
- 在 SRC 交互过程中,选择以下测试卡中的一个: 5506900140100107 (Mastercard)、4532249999999388 (Visa)
- 这将产生一个带有以下身份验证交易的订单:
authentication.psd2.exemption,设置为请求中提供的值,即以下值之一:
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
transaction.authenticationStatus=AUTHENTICATION_EXEMPTresponse.gatewayRecommendation=PROCEEDresponse.gatewayCode=APPROVEDorder.status=AUTHENTICATION_NOT_NEEDEDauthentication.3ds2.transactionStatus=N(Mastercard) 或N(Visa)authentication.3ds2.statusReasonCode=81(仅 Mastercard)authentication.3ds2.statusReasonCode=89(仅 Visa)authentication.3d.acsEci=06(Mastercard) 或07(Visa)authentication.3ds.authenticationToken
- 此订单的 Authorize 或 Pay 交易将成功处理。
常见问题
我已经与网关集成来使用 3DS1。 我是否符合 PSD2 SCA 要求?
如果您已经有使用网关适用于 3DS1 的旧版 API 与网关的现有集成,您需要升级到 EMV 3DS 支付验证,然后按照本页介绍的集成步骤操作。
当发卡机构在对付款人进行身份验证时向付款人手机发送一次性密码,3DS 1 仅在此时会被视为符合 PSD2 SCA 要求,如果发卡机构是向付款人分配静态密码,则不会。
由于并非所有发卡机构都使用一次性密码,因此如果要求您遵守 PSD2 SCA 要求,不建议您依靠 3DS1 来实现。
我现在已经有定期付款或其他商家发起付款的付款协议。 我是否需要针对所有协议再次执行付款人身份验证?
您不需要针对此类协议再次对付款人执行身份验证。 各组织有针对过渡期的规则。
如果我使用的是会话,会话中包含豁免,但付款由于不符合 PSD2 SCA 要求被发卡机构拒绝,接下来我该怎样做?
当订单的付款由于不符合 PSD2 SCA 要求而被发卡机构拒绝时,网关会忽略会话中包含的豁免。 因此,您无需在对订单进行 3DS 身份验证之前从会话中删除豁免并重新提交付款。
如何在 Merchant Administration 中搜索和查看订单和交易的 PSD2 豁免详细信息?
通过“订单和交易搜索”在 Merchant Administration 中搜索订单或交易时,可以使用搜索词:
- “付款人身份验证状态”:“身份验证成功”用来查找所有成功通过身份验证的订单
- “付款人身份验证状态”:“身份验证豁免”用来查找申请或实施豁免的所有订单
订单的身份验证状态显示在 Merchant Administration 中“订单和交易详细信息”页面“付款人身份验证详细信息”部分的“付款人身份验证状态”字段中。如果为订单申请或实施了豁免,此字段的值将为“身份验证豁免”。
交易的身份验证状态显示在 Merchant Administration 中“订单和交易详细信息”页面的“交易”部分。 选择您要查看的交易对应的“查看”。 如果为交易申请或实施了豁免,字段“付款人身份验证 - 身份验证状态”的值将为“身份验证豁免”。