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 流程示意图: