跳转至

3DS支付验证

在借记卡支付中使用3DS支付验证

要使用3DS支付验证,你可能需要先集成供应商所提供的用于3DS的JavaScript库。 然后你需要在支付请求的card3dsInfo对象中,指定字段use3ds的值为true,并提供对应供应商所需的其他验证参数。

在收到3DS支付验证请求后,支付系统会返回一个带有验证信息的IN_PROGRESS状态的响应。 你需要根据这些验证信息,继续进行3DS的认证流程。当付款人完成认证后,支付成功,订单的状态将会转为SETTLED

集成Openpay的3DS支付验证

1) 在请求的card3dsInfo对象中,指定当3DS支付验证完成时,Openpay重定向付款人所使用的redirectUrl。请求和响应的例子如下:

创建带3DS支付验证的请求

POST /v1/payments/charges/card

Request Headers
{
    "Content-Type": "application/json",
    "Authorization": "Bearer {{access_token}}",
    "x-api-key": "{{api_key}}"
}
Request Body
{
    "idempotencyKey": "1ec983fa-1a37-679b-809b-067861d87ab0",
    "amount": 1000,
    "country": "MX",
    "currency": "MXN",
    "paymentMethod": "DEBIT_CARD",
    ...  # other basic request fields
    "card3dsInfo": {
        "use3ds": true,
        "redirectUrl": "https://www.liquido.com"  // 认证完成后的重定向地址
    },
    "subMerchantId": "UUID",
    ...  # other basic request fields
}
Response
{
    "transferStatusCode": 200,
    "idempotencyKey": "1ec983fa-1a37-679b-809b-067861d87ab0",
    "referenceId": "1ec983fa-1a37-679b-809b-067861d87ab0",
    "paymentMethod": "DEBIT_CARD",
    "amount": 1000,
    "currency": "MXN",
    "finalAmount": 1000,
    "finalCurrency": "MXN",
    "country": "MX",
    "createTime": "2022-03-01 17:53:18 GMT-08:00",
    "scheduledTime": "2022-03-01 17:53:18 GMT-08:00",
    ...  # other basic response fields
    "transferDetails": {
        "card": {
            "cardInfo": {
                "cardHolderName": "card_holder_name",
                "expirationMonth": 9,
                "expirationYear": 2024,
                "brand": "VISA",
                "bin": "458124",
                "last4": "0000"
            },
            "cardId": "8736453a-dad0-4f26-85f0-95e8787d0237",
            "card3dsInfo": {
                "use3ds": true,
                "redirectUrl": "https://www.liquido.com",
                "authenticationUrl": "https://api.openpay.mx/v1/mdo1yf2/charges/trsa4og/redirect/"
            }
        }
    },
    "transferStatus": "IN_PROGRESS",
    "description": "this is a test pay",
    "subMerchantId": "UUID"
}

2) 从以上例子的响应中可以看到,当认证需要走3DS的挑战流程时,Openpay会返回一条重定向到发卡行认证页面的authenticationUrl

3) 浏览器需要把付款人重定向到authenticationUrl的页面以完成认证。

4) 当付款人完成认证后,Openpay将会把付款人重定向到第1步所注册的redirectUrl。支付成功后,订单状态将会转为SETTLED

回到页面顶部