添加 3DS1 和 3DS2 支持

3DS1 和 3DS2 均可用于 Actions Center 预约端到端集成。 您可以在集成中实现其中之一(或同时实现这两种方法)。

3DS1 或 3DS2 均可满足 PSD2 的强客户身份验证要求,但存在一些关键区别:

  • 3DS1:当您有迹象表明扣款是欺诈性的时,便可以针对某笔交易触发 3DS1。
    • 实现 3DS1 时需要更改您的预订服务器
  • 3DS2:3DS2 用于适用 PSD2 的交易(收单银行和客户银行均位于欧洲经济区内)。
    • 实现 3DS2 时需要更改您的商家 Feed

实现 3DS2

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

对商家 Feed 所做的更改

  • merchant_of_record_name:收单商家 (MOR) 的名称。这个用户可见的名称将显示在 3DS2 挑战中。
  • payment_country_code:处理交易的国家/地区(采用 ISO 3166-1 alpha-2 格式)。
  • CardNetworkParameters 消息:此消息会以适用于不同网络的值重复出现(仅 Visa 和 American Express 需要)
    • card_network:这些值所适用的网络(Visa、American Express)
    • acquirer_bin:处理银行卡的收款银行的银行识别码。
    • acquirer_merchant_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 流程图