1. Authentication
Merchant Connect API
  • 版本记录
  • Integration Guide
    • EC Payment
      • Merchant API
        • Overview
        • Payment
        • Payment Methods
        • Response code
        • After Payment
          • Capture
          • Cancel
          • Refund
          • Cancel or Refund
          • Accept Notification
        • Features
          • Account Status Inquiry (ASI)
          • COF
          • Multi-Currency Transaction
          • Recurring
          • Smart Routing
          • Transaction Retry
          • Payout
          • Authentication
            • 3D Secure
            • FIDO Authentication
            • Authentication only
          • Tokenization
            • Gateway Tokenization
            • Create a gateway token
            • Network Tokenization
            • Pay with gateway token
            • Manage token
            • Network Token update notification
            • Card Based Network Token
    • In-store Payment
      • Merchant API (线下卡支付)
        • ZPK
          • ZPK
        • Payment
          • Payment
        • After Payment
          • Capture
          • Cancel
          • Refund
          • Cancel or Refund
          • Accept Notification
  • API Explorer
    • API Rules
  • PaymentMethod
    • PaymentMethod
      POST
    • PaymentMethod
      PUT
    • PaymentMethod
      GET
    • PaymentMethod
      DELETE
  • FXRateInquiry
    • FXRateInquiry
    • FXRateInquiry
  • Payment
    • Payment
    • Payment
    • Payment
  • Payout
    • Payout
    • Payout
  • Capture
    • Capture
    • Capture
  • Cancel
    • Cancel
    • Cancel
  • Refund
    • Refund
    • Refund
  • Cryptogram
    • Cryptogram
    • Cryptogram
  • CancelOrRefund
    • Cancel or Refund
    • Cancel or Refund
  • Notification
    • Notification for PaymentMethod
    • Notification for Payment
    • Notification for Capture
    • Notification for Cancel
    • Notification for Refund
    • Notification for DataSubmission
    • Notification for MPM Static QR Code
    • Notification for Token Status Update
    • Notification for Settlement
    • Notification for Reversal
    • Notification for Cryptogram
    • Notification for Payout
  • HealthCheck
    • HealthCheck
  • ZPK
    • ZPK
  • 附录
    • Result Code
    • Appendix: Payment Method Variant
    • Appendix: Payment Brands
  • Coupon Write-off
    • Coupon Write-off
  • Coupon Reversal
    • Coupon Reversal
  1. Authentication

FIDO Authentication

FIDO 认证#

在以下两种场景中,EVO Cloud 支持 FIDO 认证:
使用已关联网络令牌的网关令牌进行支付;
创建与网络令牌关联的网关令牌。

什么是 FIDO 认证#

FIDO 认证由 FIDO 联盟制定。FIDO 联盟基于公钥密码学制定全球认证标准。
令牌认证(Token Authentication)是一套符合 FIDO 标准的方案,支持用通行密钥(passkey)完成用户认证。

支持场景概览#

商户场景支持方式是否支持 FIDO 通行密钥
原生 App(iOS)ASWebAuthenticationSession(推荐)
SafariViewController(有限支持)
✅
原生 App(Android)Chrome Custom Tab✅
网站(PC 浏览器)Chrome、Safari、Edge、Firefox✅
网站(移动浏览器)主流移动浏览器✅
App 内嵌 WebViewiOS WKWebView、Android WebView❌ 不支持

FIDO 方案#

符合 FIDO 认证条件的交易,会根据用户设备上是否已存有对应的通行密钥,走注册流程或身份识别流程。

FIDO 认证注册流程#

用户首次将令牌与设备绑定并使用 FIDO 认证时,需要先完成身份验证(例如 3DS 认证)。认证成功后,页面会提示持卡人把通行密钥保存到设备上,供后续认证使用。
FIDO 认证注册流程适用于两种情况:通过 paymentMethod 请求创建令牌;通过 payment 请求在支付时创建令牌。

FIDO 认证身份识别流程#

用户使用已绑定通行密钥的令牌发起交易时,FIDO 会直接通过生物识别技术验证用户身份。

FIDO 认证接入#

步骤 1:采集附加参数#

除了支付 / 令牌化中采集的基础参数,还需要向用户采集额外信息以完成 FIDO 认证。详见 章节的步骤 2。

步骤 2:发起支付或令牌化#

采集到附加参数后,从服务端向 EVO Cloud 发起 HTTP POST 请求。
支付请求地址:
/g2/v1/payment/mer/{sid}/payment
令牌化请求地址:
/g2/v1/payment/mer/{sid}/paymentMethod
FIDO 认证需要在请求中额外携带以下参数(M = 必填,O = 可选,C = 条件必填):
Body 参数是否必填说明
authenticationM支付或令牌化前用于用户认证的信息。
transInitiatorC支付时必填。 支付或令牌化前用于用户认证的信息。
userInfoC支付时必填。 支付或令牌化前用于用户认证的信息。
returnURLM用户完成认证后,重定向回商户的 URL。
allowAuthenticationO门店配置为可选认证时适用。用于 POST /g2/v1/payment/mer/{sid}/payment 或 POST /g2/v1/payment/mer/{sid}/paymentMethod 请求,表示该笔支付是否需要认证。
authentication 对象详细说明:
1.
authentication.type:该笔支付使用的认证模式,可选。需要设为 FIDOPage、threeDSPageOrFIDOPage 或 threeDSIntegratorOrFIDOPage,告知 EVO Cloud 使用 FIDO 认证的重定向方案。
authentication.type说明
FIDOPage该交易使用 EVO Cloud 认证页面,进行 Mastercard SCOF(Secure Card on File,安全卡信息存储)TAS(Token Authentication Services,令牌认证服务)认证。
threeDSPageOrFIDOPage该交易使用 EVO Cloud 认证页面进行 3DS 认证,或使用 EVO Cloud 认证页面进行 Mastercard SCOF TAS 认证。具体采用哪种由 EVO Cloud 自动判断。
threeDSIntegratorOrFIDOPage该交易通过与 EVO Cloud 的全 API 对接进行 3DS 认证,或使用 EVO Cloud 认证页面进行 Mastercard SCOF TAS 认证。具体采用哪种由 EVO Cloud 自动判断。
transInitiator 对象详细说明:
1.
transInitiator.userCreateIP:用于标识设备的唯一字符串,支持 IPv4 或 IPv6。
2.
transInitiator.latitude 和 transInitiator.longitude:可选,填写用户发起支付时所用设备的纬度和经度。FIDO 认证时必填,除非用户拒绝共享位置。
userInfo 对象详细说明:
1.
userInfo.mobilePhone:用户手机号。未提供邮箱(userInfo.email)时必填。
2.
userInfo.email:用户邮箱地址。未提供手机号(userInfo.mobilePhone)时必填。
以下示例为一笔需要 FIDO 认证、使用网关令牌支付的 10 USD 交易:
如果应答中没有 action 对象,使用 result.code 和 payment.status / paymentMethod.token.status 向用户展示支付 / 令牌化结果。
如果有 action 对象,说明还需要额外步骤才能完成支付 / 令牌化:把 action 对象发给 Web 前端或客户端 App,然后进入下一步。以下为需要重定向的支付应答示例:

步骤 3:处理 redirectUser#

在 FIDOPage 重定向方案下,应答中收到的 action.type 通常是 redirectUser。这表示你需要使用同一应答中的 action.redirectData,把用户重定向到 EVO Cloud 托管页面完成 FIDO 认证。

A. 将用户重定向到 EVO Cloud 托管页面#

按 action.redirectUser.method 指定的 HTTP 方法,把用户重定向到 action.redirectUser.url。
以下为 action.redirectUser.method 为 GET 时,在前端执行 redirectUser 操作的示例:
原生 App 接入时,标准 WebView 不支持 FIDO 认证。建议在 App 内用以下方式打开认证页面。
iOS App 接入#
✅ 推荐方案:ASWebAuthenticationSession
Android App 接入#
✅ 推荐方案:Chrome Custom Tab
用户随后会进入 EVO Cloud 托管页面,由 EVO Cloud 与用户及卡组织完成后续的 FIDO 认证流程。

B. 用户完成认证后重定向回商户#

EVO Cloud 会把用户重定向回你的 returnURL,你可以用应答中的 merchantTransID 参数匹配首次请求。
如果应答中的 status 参数为 finished,可视为 FIDO 认证成功。此时需要调用 GET 接口或接收 EVO Cloud 的通知来获取交易详情。
如果 10 分钟内没有收到任何应答,或 status 参数不是 finished,可视为 FIDO 认证失败。此时同样需要调用 GET 接口或接收 EVO Cloud 的通知来获取交易详情。

步骤 4:展示结果#

用户完成支付或令牌化,且前端或客户端 App 无需进一步操作后,使用 result.code 和 payment.status / paymentMethod.status 告知用户支付或令牌化的状态。
结果码说明
S0000成功
V0007Missing field {} when {...}(在 {...} 条件下缺少字段 {})
B0025认证未完成
B0026不支持该 3DS 版本
其他可能的 result.code 值及建议向用户展示的提示信息,见 EVO Cloud API 规范附录。
如果 result.code 为 S0000,还需要检查 payment.status / paymentMethod.status,确定支付或令牌化的状态并告知用户。
状态(payment)说明
Authorised用于卡交易,表示交易授权已成功,等待完成(商户可发起撤销)。
Captured卡交易表示授权和完成均已成功。
Failed支付失败。
状态(paymentMethod)说明
Success令牌已创建。
Failed令牌创建失败。
其他可能的 payment.status / paymentMethod.status 值及说明,见 EVO Cloud API 规范中的 payment.status / paymentMethod.status 部分。

异常处理#

向 EVO Cloud 发起的 HTTP POST 请求:建议请求发出后至少等待 45 秒。如果在这段时间内没有收到应答,需要主动向 EVO Cloud 查询结果,查询方式见“支付 / 令牌化”章节的步骤 6。
向 EVO Cloud 发起的 HTTP PUT 请求:HTTP PUT 请求是幂等的。如果在一定时间内(例如 45 秒)没有收到 EVO Cloud 的应答,可以用完全相同的请求报文重新发送。多次重发仍未收到应答时,可以改为发起一笔新的支付 / 令牌化请求。
上一页
3D Secure
下一页
Authentication only
Built with