Translation disclaimer

Documentation is written in English and subsequently translated. This page, therefore, might not have the most up-to-date content. If any questions arise relating to the accuracy of the translated content, please refer to the English version of the page.

Menu

质疑显示

如果身份验证响应 outcomechallenged,并且 authentication.version2.x.x (3DS2),则您可以使用 SDK 来为移动设备提供经改进的3DS2 质疑显示

如果 authentication.version1.x.x (3DS1),则您必须遵循3DS1 质疑显示。该集成会更严格地遵循 Web 的步骤。

3DS2 质疑显示

如果 authentication.version2.x.x,则您需要从身份验证响应中获得以下值,以便用在 SDK 中。

访问名称值来源Cardinal SDK 名称
challenge.reference身份验证响应transactionId
challenge.payload身份验证响应payload

Access 3DS API 会针对最新的 Cardinal SDK 定期进行测试。当前已测试的 Cardinal SDK 版本: v2.2.5

SDK 质疑显示:

自定义质疑界面

作为 SDK 设置的一部分,您可以自定义质疑用户界面

3DS1 质疑显示

如果 authentication.version1.x.x,则使用以下步骤来显示质疑屏幕。

注释:早在智能手机问世之前,发卡机构就开始实施 3DS 版本 1,但与版本 2 相比,它的体验较差。我们预计在 2021 年期间来自发卡机构的版本 1 流量将出现下降。

质疑表格 (webView)

POST 请求至 challenge.url(通过 challenge.jwt 和可选 MD)。

MD 字段让您能够在响应 url (challenge.returnUrl) 中包含/重复的质疑表格中传递 url 参数(最多 1024 个字符)。

拦截质疑返回

拦截对此 url 的 POST 请求: challenge.returnUrl

验证

一旦填写了质疑,您就必须发出一个验证请求来验证质疑的结果。

重要信息:您只应从后端系统请求验证 API。您不得使用 Access 凭证直接从移动应用程序中调用。

POST 您的验证请求至在您的身份验证响应中收到的 3ds:verify 操作链接。

验证示例请求

注释:对于 Android/iOS SDK,您必须使用 v3 版的 API

POST https://try.access.worldpay.com/verifications/customers/3ds/verification

验证请求正文:

Copied!
{
    "transactionReference": "Memory265-13/08/1876",
    "merchant": {
        "entity": "default"
    },
    "challenge": {
        "reference": "123456789"
    }
}

验证响应

最佳实践:Access Worldpay 在服务响应的头文件中返回WP-CorrelationId。我们强烈建议您将此记录下来。我们使用WP-CorrelationId检查单个服务请求。

以下是您会收到的验证响应的示例。

Copied!
{
    "outcome": "authenticated",
    "transactionReference": "Memory265-13/08/1876",
    "authentication": {
        "version": "2.1.0",
        "authenticationValue": "MAAAAAAAAAAAAAAAAAAAAAAAAAA=",
        "eci": "05",
        "transactionId": "c5b808e7-1de1-4069"
    }
}
{
    "outcome": "authenticationFailed",
    "transactionReference": "Memory265-13/08/1876",
    "authentication": {
      "version": "1.0.2",
      "eci": "00",
      "transactionId": "N+en2I5+ZK/kQqk69wXdI8XIPg8="
    },
    "_links": {
        "3ds:authenticate": {
            "href": "https://try.access.worldpay.com/verifications/customers/3ds/authentication"
        },
        "curies": [{
            "href": "https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}",
            "templated": true,
            "name": "3ds"
        }]
    }
}
{
    "outcome": "signatureFailed",
    "transactionReference": "Memory265-13/08/1876",
    "authentication": {
      "version": "1.0.2",
      "eci": "02"
    },
    "_links": {
        "3ds:authenticate": {
            "href": "https://try.access.worldpay.com/verifications/customers/3ds/authentication"
        },
        "curies": [{
            "href": "https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}",
            "templated": true,
            "name": "3ds"
        }]
    }
}
{
    "outcome": "unavailable",
    "transactionReference": "Memory265-13/08/1876",
    "_links": {
        "3ds:authenticate": {
            "href": "https://try.access.worldpay.com/verifications/customers/3ds/authentication"
        },
        "3ds:verify": {
            "href": "https://try.access.worldpay.com/verifications/customers/3ds/verification"
        },
        "curies": [{
            "href": "https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}",
            "templated": true,
            "name": "3ds"
        }]
    }
}
 

使用值:versionauthenticationValueecitransactionId,它们都源自授权支付时的请求。这些值证明了验证已成功,并且欺诈赔偿责任已经转移到发卡机构。

参数描述
authentication.version用于处理该交易的 3DS 版本。

注释:对于授权中的 Mastercard 身份校验交易是必需的。

authentication.authenticationValue提供 3DS 验证结果证据的密码值。
  • Visa - 持卡人身份验证的验证值 (CAVV)
  • Mastercard - 通用持卡人身份验证字段 (UCAF)

授权支付时使用。
authentication.eci电子商务指标 (ECI)。
表示 3DS 身份验证的结果。
  • 02 或 05 - 完全身份验证的交易
  • 01 或 06 - 尝试身份验证的交易
  • 00 或 07 - 非 3-D 安全交易
  • Mastercard - 02、01、00
  • Visa - 05、06、07
  • Amex - 05、06、07
  • JCB - 05、06、07
  • Diners - 05、06、07

您会在授权支付时用到它。
authentication.transactionId交易识别码。
如果提供,则您应将它用作支付授权的一部分。
如果 authentication.version 具有以下主要版本:
  • 1- 作为 xid返回的值
  • 2 - 作为 dsTransactionId 返回的值

后续步骤


接受支付