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