添加了 3DS1 和 3DS2 支持

3DS1 和 3DS2 均可用于 Action Center 预订端到端集成。 您可在集成中实现其中一项(或同时实现)。

3DS1 或 3DS2 均符合 PSD2 的强客户身份验证要求,但二者之间存在一些关键区别:

  • 3DS1:当您收到表明扣款具有欺诈性的信号时,便可以为交易触发 3DS1。
    • 实现 3DS1 时需要更改您的预订服务器
  • 3DS2:3DS2 用于需要遵守 PSD2 的交易(收款银行和客户银行均位于欧洲经济区 [EEA] 内)。
    • 实现 3DS2 时需要更改您的商家 Feed

实现 3DS2

如需实现 3DS2,您需要在 TokenizationConfig 消息中向商家 Feed 添加其他字段。如果所有付款均转入同一账号,您需要在每个商家条目中重复该值。如果付款转入不同的账号,则每个商家条目中的值都必须是用于在交易中收取资金的账号。

对商家 Feed 所做的更改

  • merchant_of_record_name:收单商家 (MOR) 的名称。此名称对用户可见,将显示在 3DS2 验证中。
  • payment_country_code:将对交易进行处理的国家/地区(采用 ISO 3166-1 alpha-2 格式)。
  • CardNetworkParameters 消息:此消息会以特定于不同网络的值重复出现(仅 Visa 卡和美国运通卡需要)
    • card_network:这些值所适用的网络(Visa 卡、美国运通卡)
    • acquirer_bin:处理银行卡的收单银行的银行识别码。
    • acquirer_merchant_id:收单机构分配给商家的商家 ID,用于进行交易授权(适用于 Visa 卡和美国运通卡交易)。

将这些字段添加到您的商家 Feed 后,每当交易需要遵守 PSD2 时,您的预订服务器将收到包含在 unparsed_payment_method_token 中的 3DS2 密码。您应按照相关规范将 unparsed_payment_method_token 及其嵌入式密码传递给负责处理的合作伙伴。

实现 3DS1

对预订服务器所做的更改

我们将发出 CreateBooking 请求,如果您确定该交易需要 3DS1,则从 CreateBooking 方法返回 Booking Failure,并指定 PAYMENT_REQUIRES_3DS1 作为原因。在该失败响应中,您还需要在 PaymentFailureInformation 消息中指定 ThreeDS1Parameters 消息:

  • acs_url = 可加载供用户进行身份验证的表单的网址。
  • pa_req = PaymentAuthentication 请求。将发布到 ACSUrl 表单。
  • transaction_id = ACS 提供商所用的标识符。 将发布到 ACSUrl 表单。
  • md_merchant_data = 与 ACS 提供商共享的 Action Center 数据(如果提供的话)。

然后,我们将使用 PaymentInformation 消息中的 pa_response 重新发送原始 CreateBooking 请求。pa_response 字段将包含 ACS 提供商返回给我们的载荷,您应使用该字段授权与处理方之间的交易。

以下为 3DS1 流程示意图:

图 1:3DS1 流程示意图
图 1:3DS1 流程示意图