- 集成指南
- PSD2 SCA 合规与豁免
- 针对 PSD2 SCA 的身份验证 API 集成
针对 PSD2 SCA 的身份验证 API 集成
此页介绍支持身份验证 API 集成的 PSD2 SCA 合规与豁免的集成工作。 在继续构建您的集成之前,建议您先熟悉一下 PSD2 SCA 合规与豁免。
支持的豁免
网关目前支持以下豁免:
- 低风险
- 低价值
- 白名单
- 定期付款
- 安全公司支付
先决条件
要遵守 PSD2 SCA 要求,您需要与网关集成以使用 3DS 支付验证。
要通过网关使用 PSD2 SCA 豁免功能:
- 您的 your payment service provider 必须为您要使用的 PSD2 豁免启用并配置您在网关上的商家配置文件。
- 您不能配置任何 3D 验证交易筛选规则。
- 您必须有与网关的身份验证 API 的集成。
您应在 发起身份验证时提交尽可能多的付款人和交易信息。 这会增加发卡机构准予或实施豁免的可能性。 - 您必须与 API 版本 57 或更高版本集成。
请求付款人身份验证
您可以提交身份验证请求,而不申请豁免。 在这种情况下,您无需对网关的身份验证 API 集成进行任何更改。
如果 PSD2 SCA 适用于交易,发卡机构将向付款人呈现 3DS 质询,或实施发卡机构豁免,后一种情况下付款人将经历无障碍结账流。 在这两种情况下,所需的身份验证详细信息都包含在响应中,您可以按照标准方式继续付款。
请求付款人身份验证时申请豁免
如果 Initiate Authentication 响应指示卡可以使用 3DS,即带有值 3DS2 或 3DS1 的 authentication.version,您可以通过在提交 Authenticate Payer 请求时添加带有以下值之一的字段 authentication.psd2.exemption 来申请豁免:
- LOW_RISK
- LOW_VALUE_PAYMENT
- SECURE_CORPORATE_PAYMENT
authentication.challengePreference=NO_CHALLENGE您可以为下列所有情况申请豁免:
- 卡可以使用 3DS2 或 3DS1,即 Initiate Authentication 响应返回带有值 3DS2 或 3DS1 的
authentication.version。- 如果 3DS2 可用,网关将在身份验证期间请求豁免。
- 如果 3DS1 可用,网关将绕过身份验证并建议您继续处理付款。 网关在将付款提交到收单行进行处理时会自动请求豁免。
- 您的收单行支持 PSD2 豁免。 如果收单行不支持豁免,网关将自动请求身份验证,不会要求豁免。
- 发卡机构支持身份验证的 PSD2 豁免。 如果发卡机构不支持 PSD2 豁免,网关将绕过身份验证并通知您继续处理付款。 网关在将付款提交到收单行进行处理时会自动请求豁免。
示例 Authenticate Payer 请求
REST 中的一个示例 Authenticate Payer 请求,显示如何申请“低风险”收单行豁免。
| URL | https://na.gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
| HTTP 方法 | PUT |
{
"apiOperation":"AUTHENTICATE_PAYER",
"authentication":{
"challengePreference":"NO_CHALLENGE",
"redirectResponseUrl":"<your_host_name_and_path>",
"psd2":{
"exemption":"LOW_RISK"
}
},
"correlationId":"123456789012345678",
"device":{
"browser":"MOZILLA",
"browserDetails":{
"3DSecureChallengeWindowSize":"FULL_SCREEN",
"acceptHeaders":"application/json",
"colorDepth":24,
"javaEnabled":true,
"language":"en-US",
"screenHeight":640,
"screenWidth":480,
"timeZone":273
},
"ipAddress":"123.4.5.6"
},
"order":{
"amount":"100",
"currency":"EUR"
},
"sourceOfFunds":{
"provided":{
"card":{
"number":"5506900140100107",
"expiry":{
"month":"1",
"year":"39"
}
}
}
}
}
示例 Authenticate Payer 响应
一个示例 Authenticate Payer 响应,显示发卡机构准予“低风险”收单行豁免。
{
"authentication":{
"3ds":{
"acsEci":"06",
"authenticationToken":"kNyn+7YFi1EUAREAAAAvNUe6Hv8=",
"transactionId":"088d2f19-ecef-47c6-ae27-6db0a1e09278"
},
"3ds2":{
"acsTransactionId":"10c1b4e3-fadc-472b-88a3-73df73722f1e",
"directoryServerId":"A999999999",
"dsTransactionId":"088d2f19-ecef-47c6-ae27-6db0a1e09278",
"methodSupported":"NOT_SUPPORTED",
"protocolVersion":"2.1.0",
"requestorId":"<your_requestor_ID>",
"requestorName":"<your_requestor_name>",
"statusReasonCode":"81",
"transactionStatus":"N"
},
"payerInteraction":"NOT_REQUIRED",
"psd2":{
"exemption":"LOW_RISK"
},
"redirect":{
"customized":{
"3DS":{
"acsUrl":"<ACS_host_and path>",
"cReq":"e30="
}
}
},
"redirectHtml":"<div id=\"threedsFrictionLessRedirect\" xmlns=\"http://www.w3.org/1999/html\"> <iframe id=\"challengeFrame\" name=\"challengeFrame\"> </iframe> <form id=\"threedsFrictionLessRedirectForm\" method=\"POST\" action=\"<your host and path>\" target=\"challengeFrame\"> <input type=\"hidden\" name=\"order.id\" value=\"27bc3847-3a16-4ad7-8566-6b1be559b337\" /> <input type=\"hidden\" name=\"transaction.id\" value=\"1\" /> <input type=\"hidden\" name=\"response.gatewayRecommendation\" value=\"PROCEED\" /> <input type=\"hidden\" name=\"result\" value=\"SUCCESS\" /> </form> <script id=\"authenticate-payer-script\"> var e=document.getElementById(\"threedsFrictionLessRedirectForm\"); if (e) { e.submit(); if (e.parentNode !== null) { e.parentNode.removeChild(e); } } </script> </div>",
"version":"3DS2"
},
"correlationId":"123456789012345678",
"device":{
"browser":"MOZILLA",
"ipAddress":"123.4.5.6"
},
"lineOfBusiness":"Online",
"merchant":"<your_merchant_ID>",
"order":{
"amount":100,
"authenticationStatus":"AUTHENTICATION_EXEMPT",
"creationTime":"2020-06-01T05:32:49.982Z",
"currency":"EUR",
"id":"27bc3847-3a16-4ad7-8566-6b1be559b337",
"lastUpdatedTime":"2020-07-22T08:44:28.148Z",
"merchantCategoryCode":"1234",
"status":"AUTHENTICATION_NOT_NEEDED",
"totalAuthorizedAmount":0,
"totalCapturedAmount":0,
"totalRefundedAmount":0,
"valueTransfer":{
"accountType":"NOT_A_TRANSFER"
}
},
"response":{
"gatewayCode":"APPROVED",
"gatewayRecommendation":"PROCEED"
},
"result":"SUCCESS",
"sourceOfFunds":{
"provided":{
"card":{
"expiry":{
"month":"1",
"year":"39"
},
"number":"5506900140100107",
"scheme":"MASTERCARD"
}
},
"type":"CARD"
},
"timeOfLastUpdate":"2020-07-22T08:44:28.148Z",
"timeOfRecord":"2020-06-01T05:32:49.982Z",
"transaction":{
"acquirer":{
"merchantId":"9808"
},
"amount":100,
"authenticationStatus":"AUTHENTICATION_EXEMPT",
"currency":"EUR",
"id":"1",
"type":"AUTHENTICATION"
},
"version":"57"
}
如果您未启用申请的豁免,请求将像您未申请豁免一样处理。 发卡机构可以:
- 准予您申请的豁免,
- 实施发卡机构豁免,或
- 拒绝您申请的豁免,也不实施发卡机构豁免。
如果您的收单行或组织不支持豁免,将进行特殊处理。
| 情景 | 描述 |
|---|---|
| 发卡机构准予收单行豁免 | 如果发卡机构批准您所请求的豁免:
|
| 发卡机构实施发卡机构豁免 | 如果发卡机构实施发卡机构豁免:
|
| 发卡机构不准予或实施豁免 | 如果发卡机构不准予您申请的豁免,也不实施发卡机构豁免:
|
| 收单行不支持 PSD2 豁免 | 如果收单行(后续将用于处理付款)不支持 PSD2 豁免,网关将像未申请豁免一样处理身份验证。
|
| 此组织不支持 PSD2 豁免 | 目前仅 Mastercard 和 Visa 支持在执行身份验证时申请豁免。 如果网关不支持为组织请求 PSD2 豁免,网关将继续,不会执行 3DS。
|
继续处理付款
如果响应不包含 response.gatewayRecommendation=PROCEED,我们不建议您继续处理付款。 应要求付款人提供另一组付款详细信息。
如果 Authenticate Payer 响应指示您可以继续处理付款 (response.gatewayRecommendation=PROCEED),通过提交 Authorize 或 Pay 请求来继续处理付款。 有关详细信息,请参见使用身份验证 API 实施 3DS 集成(步骤 3)。
回退到 3DS1
如果卡不支持 3DS2,网关可能会回退到 3DS1。 在这种情况下,如果您申请了豁免,网关行为取决于收单行是否支持 PSD2 豁免。 请参见下表了解详细信息。
| 情景 | 描述 |
|---|---|
| 收单行支持 PSD2 豁免 | 网关将继续,不执行 3DS。
响应不会包含任何 3DS 详细信息(指示未执行 3DS)。 如果您继续处理付款,网关在提交付款由收单行进行处理时会自动请求豁免。 |
| 收单行不支持 PSD2 豁免 | 如果收单行(后续将用于处理付款)不支持 PSD2 豁免,网关将像未申请豁免一样处理身份验证。
|
验证成功后继续付款
如果您成功执行了身份验证,即 Authenticate Payer 响应包含 response.gatewayRecommendation=PROCEED,通过提交 Authorize 或 Pay 请求来继续处理付款。
有关详细信息,请参见使用身份验证 API 实施 3DS 集成(步骤 3)。 网关会自动将 3DS 身份验证详细信息添加到提交给发卡机构的交易请求中。
提交付款时申请豁免
如果您未执行身份验证,可以通过 Authorize 或 Pay 请求中申请豁免。 将带有以下值之一的 authentication.psd2.exemption 字段添加到请求字段中:
- LOW_RISK
- LOW_VALUE_PAYMENT
- SECURE_CORPORATE_PAYMENT
示例 Pay 请求
展示如何申请低风险收单行豁免的 REST 中的示例 Pay 请求。
| URL | https://na.gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
| HTTP 方法 | PUT |
{
"apiOperation":"PAY",
"authentication":{
"psd2":{
"exemption":"LOW_RISK"
}
},
"order":{
"amount":"100",
"reference":"<your_order_ID>",
"currency": "EUR",
"merchantCategoryCode": "1234"
},
"sourceOfFunds":{
"provided":{
"card":{
"number":"5506900140100107",
"expiry":{
"month":"1",
"year":"39"
}
}
},
"type":"CARD"
},
"transaction":{
"source":"INTERNET"
}
}
Pay 响应示例
发卡机构未准予或实施豁免且拒绝了请求(因为需要执行 SCA)的一个示例 Pay 响应。
{
"authentication":{
"psd2":{
"exemption":"LOW_RISK"
}
},
"authorizationResponse":{
"commercialCard":"888",
"commercialCardIndicator":"3",
"financialNetworkCode":"777",
"posData":"1025104006600",
"posEntryMode":"812",
"processingCode":"003000",
"responseCode":"65",
"stan":"101123",
"transactionIdentifier":"123456789"
},
"currencyConversion":{
"uptake":"NOT_REQUIRED"
},
"gatewayEntryPoint":"WEB_SERVICES_API",
"merchant":"<your_order_ID>",
"order":{
"amount":100.00,
"authenticationStatus":"AUTHENTICATION_REQUIRED",
"certainty":"FINAL",
"chargeback":{
"amount":0,
"currency":"EUR"
},
"creationTime":"2020-07-24T06:49:21.703Z",
"currency":"EUR",
"id":"<your_order_ID>",
"lastUpdatedTime":"2020-07-24T06:49:22.019Z",
"merchantAmount":100.00,
"merchantCategoryCode":"1234",
"merchantCurrency":"EUR",
"reference":"f1dc3211-ea25-46af-b72d-93828f0c6964",
"status":"FAILED",
"totalAuthorizedAmount":0.00,
"totalCapturedAmount":0.00,
"totalRefundedAmount":0.00
},
"response":{
"acquirerCode":"65",
"acquirerMessage":"SCA required under PSD2",
"gatewayCode":"DECLINED",
"gatewayRecommendation":"ATTEMPT_WITH_AUTHENTICATION"
},
"result":"FAILURE",
"sourceOfFunds":{
"provided":{
"card":{
"brand":"MASTERCARD",
"expiry":{
"month":"1",
"year":"39"
},
"fundingMethod":"CREDIT",
"issuer":"INTERNATIONAL CARD SERVICES BV",
"number":"510029xxxxxx2909",
"scheme":"MASTERCARD",
"storedOnFile":"NOT_STORED"
}
},
"type":"CARD"
},
"timeOfLastUpdate":"2020-07-24T06:49:22.019Z",
"timeOfRecord":"2020-07-24T06:49:21.813Z",
"transaction":{
"acquirer":{
"batch":20200724,
"date":"0724",
"id":"SYSTEST_ACQ_S2I",
"merchantId":"9808",
"transactionId":"123456789"
},
"amount":100.00,
"authenticationStatus":"AUTHENTICATION_REQUIRED",
"currency":"EUR",
"id":"<your_transaction_ID>",
"receipt":"020606101123",
"source":"INTERNET",
"stan":"101123",
"terminal":"0002",
"type":"PAY"
},
"version":"57"
}
如果您未启用申请的豁免,请求将被网关拒绝。 请与 your payment service provider 联系,确保他们已为您启用 PSD2 SCA 豁免功能,您可以在所有商家收单行链接上使用。
发卡机构可以:
- 准予您申请的豁免,
- 实施发卡机构豁免,或
- 拒绝您申请的豁免,也不实施发卡机构豁免。
如果您的收单行或组织不支持豁免,将进行特殊处理。
| 情景 | 描述 |
|---|---|
| 发卡机构准予收单行豁免 | 如果发卡机构批准您所请求的豁免,则付款将不受 PSD2 SCA 要求的约束,并且无需任何身份验证详细信息即可继续进行。 如果交易成功,响应将包含:
|
| 发卡机构实施发卡机构豁免 | 如果发卡机构实施发卡机构豁免,付款可以免于遵守 PSD2 SCA 要求,继续进行,而无需任何身份验证详细信息。 如果交易成功,响应将包含:
|
| 发卡机构不准予或实施豁免 | 如果发卡机构不准予您申请的豁免,且未实施发卡机构豁免,发卡机构将拒绝交易。 发卡机构返回的响应代码将指示交易被拒绝,因为需要执行 PSD2 规定的 SCA。 Authorize 或 Pay 响应将包含:
|
| 收单行不支持 PSD2 豁免 | 如果您的收单行不支持 PSD2 豁免,网关将像未申请豁免一样处理付款。 |
| 此组织不支持 PSD2 豁免 | 目前仅 Mastercard 和 Visa 支持使用豁免。 如果网关不支持为组织请求 PSD2 豁免,网关将像未申请豁免一样处理付款。 |
提交付款而不申请豁免
如果您未执行身份验证,可以提交 Authorize 或 Pay 请求,不申请豁免。 发卡机构可能实施发卡机构豁免,也可能由于付款未遵守 PSD2 SCA 要求而拒绝付款。
| 情景 | 描述 |
|---|---|
| 发卡机构实施发卡机构豁免 | 如果发卡机构实施发卡机构豁免,付款可以免于遵守 PSD2 SCA 要求,继续进行,而无需任何身份验证详细信息。 如果交易成功,响应将包含:
|
| 发卡机构不准予或实施豁免 | 如果您未申请收单行豁免,发卡机构也未实施发卡机构豁免,发卡机构将拒绝交易。 发卡机构返回的响应代码将指示交易被拒绝,因为需要执行 PSD2 规定的 SCA。 Authorize 或 Pay 响应将包含:
您可以通过执行付款人身份验证,然后重新提交包含身份验证详细信息的付款请求来继续处理付款。 要执行付款人身份验证,请提交包含 authentication.challengePreference=CHALLENGE_MANDATED 字段的 Authenticate Payer 请求。
|
白名单豁免
您可以请发卡机构向付款人提供将您加入白名单(卡白名单)的选项,方法是在 Authenticate Payer 请求中添加 authentication.challengePreference=REQUEST_WHITELISTING。
authentication.challengePreference=REQUEST_WHITELISTING 的请求中还包含 authentication.psd2.exemption 字段,网关将忽略 authentication.psd2.exemption 字段。 您可以在执行以下任一操作时发起此请求:
- 提交付款时(Initiate Authentication 请求包含
authentication.purpose=PAYMENT_TRANSACTION)或 - 添加或更新付款人的卡详细信息时(Initiate Authentication 请求包含
authentication.purpose=ADD_CARD或MAINTAIN_CARD)。
如果付款人同意将您添加到他们的白名单中,Authenticate Payer 响应将包含 authentication.psd2.whitelistStatus=WHITELISTED。 否则,或发卡机构不支持白名单,Authenticate Payer 响应将包含 authentication.psd2.whitelistStatus=NOT_WHITELISTED。
您需要跟踪付款人是否已将您列入白名单,以便可以在此付款人执行任何后续付款时申请白名单豁免。
通过在请求中添加 authentication.psd2.exemption=WHITELISTED_MERCHANT 申请实施白名单豁免。
发卡机构将验证付款人是否已将您列入白名单,然后:
- 准予豁免(付款人经历无障碍流)并返回成功身份验证的身份验证详细信息,或
- 不准予豁免,向付款人呈现质询流。
如果付款人已将您列入白名单,当您继续处理付款,不对付款人执行身份验证时,发卡机构可能准予豁免或拒绝交易请求。要继续处理付款,您必须执行付款人身份验证并重新提交付款请求。
定期付款豁免
如果您与付款人之间已有定期付款协议,即固定金额订阅:
- 在提交系列付款的持卡人发起的初始付款时,必须执行 SCA。
- 必须正确标识系列付款的持卡人发起的初始付款,参见持卡人发起交易。
- 必须将系列付款中所有后续的商家发起付款正确标识为商家发起付款,参见商家发起交易。
- 您必须为系列付款中所有后续的商家发起付款申请定期付款豁免。
- 如果协议的金额或卡详细信息发生变化,您必须提交另一笔由持卡人发起的付款,并对该付款执行 SCA。
持卡人发起付款
对于系列付款中的第一笔付款,或者金额或卡详细信息发生更改,应对付款人执行身份验证并提交持卡人发起付款。
提交包含 authentication.purpose=PAYMENT_TRANSACTION 的 Initiate Authentication 请求。
提交包含以下字段的 Authenticate Payer 请求:
authentication.challengePreference=CHALLENGE_MANDATEDorder.amount,设置为定期付款系列中每笔付款的固定金额agreement.idagreement.type=RECURRINGagreement.expiryDate(可选)agreement.recurring.daysBetweenPayments(可选)
如果身份验证成功,在同一个订单中提交包含以下字段的 Authorize 或 Pay 请求:
authentication.transactionId,在authentication参数组中引用身份验证交易或提交 3DS 身份验证详细信息order.amount,匹配经过身份验证的金额agreement.id,匹配身份验证交易中的协议 IDsourceOfFunds.provided.card.storedOnFile=TO_BE_STOREDtransaction.source将设置为MERCHANT以外的值
商家发起付款
对于系列付款中所有后续的商家发起付款,您不需要对付款人执行身份验证。 但必须将付款正确标识为商家发起付款。 请参见商家发起交易了解详细信息。
authentication.psd2.exemption=RECURRING_PAYMENTorder.amount,匹配身份验证交易的订单金额agreement.id,匹配身份验证交易中的协议 IDtransaction.source=MERCHANTsourceOfFunds.provided.card.storedOnFile=STORED
商家发起付款豁免
如果您与付款人之间已有商家发起付款协议,例如,定期付款、分期付款或计划外付款(不包括固定金额的定期付款,参见“使用身份验证 API 的定期付款豁免”部分):
- 在提交系列付款的持卡人发起的初始付款时,必须执行 SCA。
- 必须将系列付款中所有后续的商家发起付款正确标识为商家发起付款,参见商家发起交易。
- 必须为系列付款中所有后续的商家发起付款申请商家发起付款豁免。
- 如果协议中的卡详细信息发生变化,您 必须 提交另一笔由持卡人发起的付款,并对该付款执行 SCA。
持卡人发起付款
对于系列付款中的第一笔付款,或者卡详细信息发生更改,应对付款人执行身份验证并提交持卡人发起付款。
提交包含 authentication.purpose=PAYMENT_TRANSACTION 的 Initiate Authentication 请求。
提交包含以下字段的 Authenticate Payer 请求:
authentication.challengePreference=CHALLENGE_MANDATEDagreement.id
如果身份验证成功,在同一个订单中提交包含以下字段的 Authorize 或 Pay 请求:
authentication.transactionId,在authentication参数组中引用身份验证交易或提交 3DS 身份验证详细信息agreement.id,匹配身份验证交易中的协议 IDagreement.typeagreement.expiryDate(可选,仅适用于定期付款)agreement.recurring.daysBetweenPayments(可选,仅适用于定期付款)。对于可变时间间隔协议,设置为“1”。sourceOfFunds.provided.card.storedOnFile=TO_BE_STOREDtransaction.source将设置为MERCHANT以外的值
商家发起付款
对于系列付款中所有后续的商家发起付款,您不需要对付款人执行身份验证。 但必须将付款正确标识为商家发起付款。 请参见商家发起交易了解详细信息。
authentication.psd2.exemption=MERCHANT_INITIATED_PAYMENTagreement.id,匹配身份验证交易中的协议 IDtransaction.source=MERCHANTsourceOfFunds.provided.card.storedOnFile=STORED
仅使用网关进行身份验证
如果响应不包含 response.gatewayRecommendation=PROCEED,我们不建议您继续处理付款。 应要求付款人提供另一组付款详细信息。
如果 Authenticate Payer 响应指示您可以继续处理付款 (response.gatewayRecommendation=PROCEED),提交包含 Authentication Payer 响应中提供的详细信息的付款请求。 根据身份验证响应详细信息,您可能需要在付款请求中提供以下详细信息。
| 情景 | 描述 |
|---|---|
| 发卡机构准予收单行豁免 | 如果发卡机构准予您申请的豁免,响应将包含 transaction.authenticationStatus=AUTHENTICATION_EXEMPT。 在这种情况下,不要在付款请求中申请豁免。 应在付款请求中提交未更改的身份验证令牌(在 authentication.3ds.authenticationToken 字段中提供)。 响应包含以下字段,返回的卡协议版本为版本 2.1.0:协议版本 2.1.0
对于 Mastercard 卡,包含以下字段的组合:
对于 Visa 卡,豁免确认将呈现典型的无障碍身份验证流。
使用协议版本 2.2.0 的付款人身份验证 对于 Mastercard 卡,包含以下字段的组合:
对于 Visa 卡,包含以下字段的组合:
如果在对付款人进行身份验证时付款未执行,商家可以执行“仅验证”。 不过,Mastercard 已说明,不会在标记为非支付身份验证(“ADD_CARD”或“MAINTAIN_CARD”)的 EMV 3DS 请求的响应中返回身份验证令牌(密文)。 使用协议版本 2.2.0 的非支付身份验证 对于 Mastercard 卡,包含以下字段的组合:
|
| 发卡机构实施发卡机构豁免 | 如果发卡机构实施了发卡机构豁免,响应将包含 transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL。 在这种情况下,不要在付款请求中申请豁免。 应在付款请求中提交未更改的身份验证令牌(在 authentication.3ds.authenticationToken. 字段中提供)。 请求可能还包含以下字段:
|
| 发卡机构不准予或实施豁免 | 如果发卡机构未实施豁免,当 3DS 身份验证成功时,响应将包含 transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL。 在这种情况下,不要在付款请求中申请豁免。 应在付款请求中提交未更改的身份验证令牌(在 authentication.3ds.authenticationToken 字段中提供)。 请求可能还包含以下字段:
|
| 收单行不支持 PSD2 豁免 | 如果您的收单行不支持 PSD2 豁免,网关将像未申请豁免一样处理身份验证。 请注意,这需要 your payment service provider 对您的商家配置文件进行相应配置。 如果 3DS 身份验证成功,响应将包含 transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL。 在这种情况下,不要在付款请求中申请豁免。 应在付款请求中提交未更改的身份验证令牌(在 authentication.3ds.authenticationToken. 字段中提供)。 请求可能还包含以下字段:
|
| 此组织不支持 PSD2 豁免 | 目前仅 Mastercard 和 Visa 支持在执行身份验证时申请豁免。 如果网关不支持为组织请求 PSD2 豁免,网关将继续,不会执行 3DS。 响应不会包含任何 3DS 详细信息(指示未执行 3DS)。 在这种情况下,应提交付款请求(包含豁免)。 |
在网关外部执行付款人身份验证
如果您已经在网关外部执行了 3DS2 付款人身份验证,并且收到了指示发卡机构已经准予豁免的身份验证详细信息,只需在提交 Authorize 或 Pay 请求时提供身份验证详细信息,包括:
- 字段
authentication.3ds.authenticationToken中的未更改的身份验证令牌 - 字段
authentication.3ds.acsEci中由 ACS 提供的 ECI - 来自发卡机构的访问控制服务器 (ACS) 的交易状态字段中返回的值,在
authentication.3ds2.transactionStatus字段中 - 字段
authentication.3ds2.statusReasonCode中的指示交易状态原因的代码 authentication.3ds.transactionId中未更改的由 Directory Server 分配的 3DS2 身份验证交易的唯一标识符值
测试您的集成
您可以使用测试商家配置文件(您的商家 ID,前缀为“TEST”)测试集成。 此部分提供可用于触发特定响应的测试卡号的详细信息。
付款人身份验证
要触发指示发卡机构准予您申请的豁免的 Authenticate Payer 响应,请执行以下操作:
- 提交包含以下字段的 Authentication Payer 请求:
authentication.psd2.exemption,设置为以下值之一:
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
sourceOfFunds.provided.card.number=5506900140100107 (Mastercard),4532249999999388 (Visa)
- 这会生成包含以下字段的 Authenticate Payer 响应:
authentication.psd2.exemption设置为请求中提供的值,即以下之一:
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
transaction.authenticationStatus=AUTHENTICATION_EXEMPTresponse.gatewayRecommendation=PROCEEDresponse.gatewayCode=APPROVEDorder.status=AUTHENTICATION_NOT_NEEDEDauthentication.3ds2.transactionStatus=N(Mastercard) 或N(Visa)authentication.3ds2.statusReasonCode=81(仅 Mastercard)authentication.3ds2.statusReasonCode=89(仅 Visa)authentication.3ds.acsEci=06(Mastercard) 或07(Visa)authentication.3ds.authenticationToken
- 通过在此订单中提交 Authorize 或 Pay 请求来继续处理付款。
付款交易
要触发指示因为需要执行 SCA 付款被发卡机构拒绝的 Authorize 或 Pay 响应,请执行以下操作:
- 提交包含以下字段的 Authorize 或 Pay 请求:
sourceOfFunds.provided.card.number=5506900140100503 (Mastercard),4532249999994628 (Visa)
- 这会生成包含以下字段的 Authorize 或 Pay 响应:
authentication.psd2.exemption设置为请求中提供的值,即以下之一:
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
result=FAILUREresponse.gatewayRecommendation=ATTEMPT_WITH_AUTHENTICATIONresponse.gatewayCode=DECLINEDorder.authenticationStatus=AUTHENTICATION_REQUIRED
常见问题
我现在已经有定期付款或其他商家发起付款的付款协议。 我是否需要针对所有协议再次执行付款人身份验证?
您不需要针对此类协议再次对付款人执行身份验证。 各组织有针对过渡期的规则。
如果我使用的是会话,会话中包含豁免,但付款由于不符合 PSD2 SCA 要求被发卡机构拒绝,接下来我该怎样做?
当订单的付款由于不符合 PSD2 SCA 要求而被发卡机构拒绝时,网关会忽略会话中包含的豁免。 因此,您无需在对订单进行 3DS 身份验证之前从会话中删除豁免并重新提交付款。
如何在 Merchant Administration 中搜索和查看订单和交易的 PSD2 豁免详细信息?
通过“订单和交易搜索”在 Merchant Administration 中搜索订单或交易时,可以使用搜索词:
- “付款人身份验证状态”:“身份验证成功”用来查找所有成功通过身份验证的订单
- “付款人身份验证状态”:“身份验证豁免”用来查找申请或实施豁免的所有订单
订单的身份验证状态显示在 Merchant Administration 中“订单和交易详细信息”页面“付款人身份验证详细信息”部分的“付款人身份验证状态”字段中。如果为订单申请或实施了豁免,此字段的值将为“身份验证豁免”。
交易的身份验证状态显示在 Merchant Administration 中“订单和交易详细信息”页面的“交易”部分。 选择您要查看的交易对应的“查看”。 如果为交易申请或实施了豁免,字段“付款人身份验证 - 身份验证状态”的值将为“身份验证豁免”。