3D 安全

什么是 3D Secure?

3D Secure 或 3DS 是一种用于在线支付的安全协议,旨在防止在无卡(CNP)交易中欺诈性使用信用卡。该协议于 1999 年制定,要求客户在购买过程中采取额外的验证步骤,以验证自己的身份,降低欺诈风险。下面的流程介绍了使用 3DS 的支付流程:

在哪里?

  • 商户插件接口(MPI)通过促进商户、计划目录服务器和持卡人发卡银行之间的安全信息交换,启动验证过程。
  • 计划目录服务器(DS)是一个中央数据库,便于识别持卡人的发卡银行和相应的验证方法。
  • 发卡行访问控制服务器(ACS)负责在 3DS 交易过程中验证和确认持卡人的身份。发卡行接入控制服务器(ACS)接收身份验证请求,并根据银行预定义的规则和政策执行风险评估和身份验证检查。

3D Secure 2(或称 3DS2)于 2016 年发布,是原 3DS 协议的升级版本,采用生物识别和token等动态身份验证方法,而原 3DS 协议则依赖于静态密码。3DS2 旨在为终端用户提供更好的用户体验,在身份验证过程中实现更流畅的流程。EMVCo 是一个由主要银行卡品牌拥有的组织,负责开发和管理这两个协议。2022 年 10 月,所有主要的银行卡品牌都停止了对 3DS 第一版的支持。因此,整合 3DS2 验证步骤对于确保客户体验和安全性至关重要。Yuno 已经为您的业务提供了简单的 3DS2 集成。

签证徽标
签证
万事达卡徽标
万事达卡
美国运通徽标
美国运通
JCB 徽标
JCB
大来俱乐部徽标
大来俱乐部
银联标识
银联
银行卡徽标
银行卡

3D Secure 2 的优势

如前所述,3DS2 的开发旨在提升用户体验,并使 3DS 协议适应现代支付环境。

为新技术做好准备

3DS2 的设计考虑到了智能手机的兴起,使银行能够通过其移动银行应用程序提供创新的身份验证体验,例如使用指纹或面部识别的生物识别身份验证。因此,商家可以提供多种符合消费者偏好和技术进步的身份验证方法,从而实现更方便、更安全的身份验证流程。

整合能力

在集成方面,3DS2 包含一个 SDK 组件,可将本机集成到移动应用程序中。因此,商家可以在自己的应用程序中验证交易。现在,挑战流程直接在移动结账流程中进行,无需整页重定向,可提供更无缝的用户体验。

可用于验证的数据量

3DS2 允许企业与持卡人的银行交换十倍于每次交易的数据。这包括特定支付数据(如送货地址)和上下文数据(如客户的设备 ID 或以前的交易历史)。这样,银行就能评估交易的风险等级,并有可能在持卡人不提供额外输入的情况下验证付款。因此,使用 3DS2 协议进行支付时,可以采用无摩擦流程挑战流程来完成支付。

无摩擦流

在无摩擦流程中,客户的数据无需手动输入即可确认。当系统识别并验证客户的设备时,数据就会在后台进行交换。由于客户身份已被识别并通过此信息进行了验证,因此支付系统无需再提出额外请求。

挑战流程

当存储的信息不足以验证客户身份时,就会出现挑战流程。由于无法确认客户的身份,系统需要额外的步骤来验证客户,使用一次性密码或生物识别验证。根据验证系统的不同,客户可能会被重定向到发卡机构的页面,以输入必要的信息。

使用 3DS2 可带来更流畅、更无摩擦的用户体验。3DS2 改进了数据流和决策能力,降低了购物车放弃率,提高了转换率。

3D Secure 2 支付

在结账流程中添加 3DS2 验证步骤会改变正常的工作流程。下面是完整的结账流程图和每个步骤的说明,帮助您更好地了解流程。

  1. 客户提供银行卡数据,启动商家结账流程。
  2. 商家的系统会检查是否支持 3DS2。
  3. 如果商家不支持 3DS2,结账流程将按照常规支付工作流程进行,而不使用 3DS2 验证。
  4. 如果商家支持 3DS2,Yuno 会将交易信息发送给发卡机构的 3DS 服务提供商,以评估交易风险。这些数据包括受地区或市场法律限制的持卡人和设备信息,如设备 ID、MAC 地址、地理位置、以前的交易等。
  5. 发卡机构的 3DS 服务提供商确定交易是否属于高风险,以及是否有必要提出异议以进行额外验证。
  6. 如果没有必要提出质疑,支付将进入授权步骤(无摩擦流程)。
  7. 如果需要挑战(挑战流),则向持卡人出示挑战以验证其身份。这种验证可以使用生物识别技术和/或双因素身份验证,如一次性密码或fingerprint。
  8. 系统会检查持卡人是否成功完成挑战。
  9. 如果持卡人成功验证了自己的身份,支付将进入授权步骤。
  10. 如果持卡人无法验证其身份,付款将被取消。
  11. 商家向发卡机构确认交易是否获得授权。
  12. 如果交易获得授权,则付款处理成功。
  13. 如果交易未获授权,付款将被取消或拒绝。

配置 3D 安全支付

📘

SDK v1.1 增强功能

使用 SDK v1.1,3DS 逻辑会自动使用 continuePayment() 方法,无需单独设置 3DS。更多信息,请参阅 Yuno Web SDK 文档.

由您决定系统是否执行 3DS2。3DS2 验证步骤是在定义卡片动态路由时添加的。启动卡路由时,可在定义支付提供商之前添加 3DS2 步骤。添加 3DS2 验证步骤后,在初始化使用卡支付时,Yuno 系统将分析该卡是否需要额外挑战。如果需要额外挑战,用户将被重定向到银行环境完成授权。另一方面,支付过程将正常进行。

要使用 3DS DIRECT 工作流程创建付款,您需要满足一些要求。

要求

在使用 3DS DIRECT 之前,您需要在Yuno 控制面板中启用 3DS,并指定您希望客户能够使用它的场景。这可以在 Yuno 控制面板下进行配置:路由 > 卡路由 > 3DS 步骤。这些场景必须在您的 CARD 路由上标明。此外,您还需要在支付提供商连接中提供以下 3DS 设置数据:

  • 收单银行识别码(BIN):这是用于清算和结算交易的银行识别码(BIN),以及获得使用许可的国家。
  • 商户 ID:这是收单机构提供的附属编号。
  • 商户类别代码 (MCC):收单机构将提供代表商户类别的特定代码。
  • 商家名称:指进行商业交易的公司或实体的正式名称或商业名称。
  • 商家 URL:商家网站或在线平台。
  • 国家代码:根据ISO 3166-1标准国家代码,付款需要处理的国家。
📘

使用外部 MPI 进行身份验证

如果使用外部 MPI 执行身份验证,则需要以下参数才能与提供程序成功连接:

  • 收货人 BIN
  • 收货人国家代码
  • 商户 ID
  • MCC

Yuno 3D Secure 2 集成

在 Yuno 中集成 3DS 有不同的方法,具体取决于您的需求。

一般来说,3DS 集成需要一个 setup_id/device_fingerprint 作为安全分析的第一步,只有执行由 3DS 授权提供商提供的 SDK/JS 才能获得该 ID。在使用我们的 SDK 时 我们为您处理所有逻辑问题因此,您不必担心不同提供商的需求。

因此,根据 Yuno 集成的不同,您有三种不同的选择:

  1. 结账集成:结账工作流程是 Yuno 提供的结账解决方案的一部分。使用我们的 SDK,我们可以处理与外部供应商要求和 3DS 执行有关的所有逻辑。如果您想为 3DS 分析定义特定案例,可以在 Yuno 面板的 CARD 路由中进行定义。
  2. 外部集成:使用自己的 3DS,然后在创建支付时发送相应的授权字段(card_data - eci、cryptogram 等)。仅适用于符合 PCI 标准的商家。
  3. 直接集成:直接工作流程只适用于符合 PCI 标准的商家。它提供了一种创建付款和验证用户信息的直接方法,商户只需执行一个请求即可创建付款。要成功实施 "直接 "集成,请按照以下步骤操作 整合准则 并按指示提供所需信息。每笔付款都有一个
    1. PENDING/WAITING_ADDITIONAL_STEP 状态/子状态。
    2. sdk_action_required 设为 true.
    3. redirect_url 中定义的 payment.payment_method.payment_method_detail.card.

您有责任将客户重定向到由 redirect_url 这样我们就可以收集设备信息,并在必要时向客户提出挑战。一旦客户成功完成 3DS 挑战,他们将被自动重定向到 callback_url,这是您在使用创建付款endpoint创建付款时提供的。

对于每种情况,Yuno网络钩子都会及时通知您 3DS 挑战的结果和最终付款状态。这可确保您收到有关付款交易进度和完成情况的实时更新。此外,您还可以随时使用我们的获取付款服务获取付款信息。

在执行每个场景的 3DS 后,您将在支付响应中收到所有必要信息,这些信息位于 payment_method.detail.card.card_data.three_d_secure 反对

现场说明示例
版本指所使用的 EMV 3-D Secure 规范的协议版本。1.0, 2.0, 2.1.0, 2.2.0, 2.2.1.2.2.1
电子商务指标该字段必须使用 3d Secure 服务提供的 ECI 字段结果填写。电子商务指标(ECI)通知发卡机构交易是否受 VbV 或 MCSC 等安全协议保护。威士卡和万事达卡规定,所有 3-D 安全交易都必须在授权请求中填写该值(最大值:2,最小值:0)。04
密码该字段必须使用 3DSecure 服务提供的密码字段结果填写。在威士卡交易中,它代表持卡人身份验证值(CAVV),是由发卡机构生成的加密值,作为在线购买期间支付身份验证的证据,以获得退款保护资格。万事达卡交易也有一个类似的值,称为 "持卡人验证值"(AAV)或 "通用持卡人验证字段"(UCAF)。在提交交易授权时,商家必须包含 CAVV 或 AAV/UCAF,以证明持卡人已通过身份验证。它通常采用 base64 编码(最大值:40,最小值:0)。BA0BB1Z3N5Q4kjkBU3c3ELGUsJY =
transaction_id对于 3DS v1:这是唯一事务标识符。它由 MPI 自动生成。长度一般为 28 字节,采用 base64 编码。通常称为 XID(最大:40,最小:0)。对于 3DS v2:由 DS 分配的通用唯一事务标识符,用于标识单个事务。(最大:36,最小:36)。Ex for V1:"TjY0MjAxRjA4MD4987DUzMzYyNjU=" V2 的 Ex:“c4e59ceb-a382-4d6a-bc87-385d591fa09d”
directory_server_transaction_id万事达卡目录服务器在身份验证过程中生成的交易 ID(最多 255 个;最少 3 个)。f38e6948-5388-41a6-bca4-b49723c19437
状态表示持卡人在 3-D 安全过程中的身份验证结果。它告诉你验证是否成功(Y)、失败(N)、无法完成(U)或只是尝试(A)。Y
acs_id访问控制服务器 (ACS) 在 3-D 安全认证过程中提供的唯一标识符。ACS-1234567890
[...]
     "payment_method": {
        "vaulted_token": "",
        "type": "CARD",
        "vault_on_success": false,
        "token": "",
        "detail": {
            "card": {
                "verify": false,
                "capture": false,
                "installments": 1,
                "installments_plan_id": null,
                "first_installment_deferral": 0,
                "installments_type": "",
                "installment_amount": null,
                "soft_descriptor": "",
                "authorization_code": "",
                "retrieval_reference_number": "",
                "voucher": null,
                "card_data": {
                    "holder_name": "John Doe",
                    "iin": "40000000",
                    "lfd": "1026",
                    "number_length": 16,
                    "security_code_length": 3,
                    "brand": "VISA",
                    "issuer_name": "",
                    "issuer_code": null,
                    "category": "STANDARD",
                    "type": "CREDIT",
                    "three_d_secure": {
                        "version": "2.1.0",
                        "electronic_commerce_indicator": null,
                        "cryptogram": null,
                        "transaction_id": null,
                        "directory_server_transaction_id": null,
                        "pares_status": null,
                        "acs_id": "z1A6ZTh7NopIhdb2R420"
                    }
                }
[...]

交易状态

3DS 交易的功能与普通购买交易类似。它经历不同的状态,这些状态代表授权过程。一旦 3DS 交易被标记为 "SUCCEEDED"(SUCCEEDED),Yuno 就会进入处理器,生成一个 "购买"(PURCHASE)交易,向客户收费。下表描述了所有可能的状态及其说明。

现状说明
CREATED付款已创建,正在等待 Yuno 的 SDK 会话 ID。
PENDING挑战是必需的,而 redirect_url 由 Yuno 返回。
进行中用户正在完成挑战。
SUCCEEDED挑战已正确完成。
DECLINED挑战已完成,但被银行拒绝。
ERROR重定向到用户挑战时发生错误。

如前所述,如果付款处于PENDING)状态,3DS 交易也将处于 "PENDING中"(PENDING )状态。挑战完成后,无论成功与否,付款和交易都将更新为相应的状态SUCCEEDED 或DECLINED)。

在特定场景中使用 3DS

在 Yuno 面板中配置 CARD 路由时,您可以使用可用条件指定在哪些情况下应执行 3DS。如前所述,根据使用的集成方法,执行 3DS 需要一些初步步骤。