В случае, если карта покупателя участвует в программе 3dsecure, то в ответе на запрос к методам purchase или auth будут присутствовать параметры для перехода на страницу банка, выпустивщего карту покупателя.

Последовательность операций

  1. запрос purchase

  2. переадресация покупателя на acsUrl из ответа со следующими параметрами

    1. PaReq - получено из запроса

    2. TermUrl - URL страницы клиента, на которую будет возвращен покупатель после прохождения проверки

    3. MD - сгенерированные клиентом параметр, который будет передан обратно при возврате на TermUrl. Обычно используется идентификации покупателя

  3. запрос complete3ds с параметром paRes, полученным при возврате на TermUrl. URL формируется с подстановкой operationId, полученного в ответе на запрос purchase

Примеры запросов и ответов

Purchase

POST /card/1-1/operations/auth HTTP/1.1
W1-Signature: S6G7l8hCWLTWuEl1+fqcQtNGjSihGuZsd2VObC0yD7kHemv7WrTI3o34L1DfQUgv3oCdFqZR8nkL7xA4/LeAhM3n8kuYH2z0hKdcXvRsZduQpI6pdOf7x6SdQ+CpBAhtvZybb/pKuPRxaP4w+PbX1CAl1oOFgE8o7iYb8l2Pj+tK37myRTsPGURW/Cyx9JK6sIMs7TA38a+rpVimaAOG/xHo6JRjT2evGWCGN84hkU1eDomYGYByR2WuVBu4/vZnVDa9N0DPd3Op0i3P6Ggozq03vR1Yuvtuhw705sps+N3bGhhRo7aR0TxWsTvue95IbTfNTqzZgnCp35kZbUHHag==
Content-Type: application/json; charset=UTF-8
Host: localhost:8080
Content-Length: 694

{
  "notification" : {
    "url" : "http://localhost:65456/callback",
    "version" : 1
  },
  "externalId" : "ext#21",
  "amount" : {
    "amount" : 10.55,
    "currency" : "USD"
  },
  "payer" : {
    "paymentMethod" : {
      "entity" : {
        "pan" : "4916798373459761",
        "expMonth" : 5,
        "expYear" : 2022,
        "cvv" : "444"
      },
      "type" : "CARD"
    },
    "info" : {
      "ip" : "127.0.0.1",
      "phone" : "9001234567",
      "email" : "no-reply@flexo.systems"
    }
  },
  "merchantParameters" : {
    "param1" : "anything you want for callback"
  },
  "registerRecurring" : true,
  "tds" : {
    "notificationUrl" : "http://tds.notification.url:6789"
  }
}
HTTP/1.1 200 OK
Date: Fri, 26 Nov 2021 21:14:26 GMT
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 294

{
  "operationId" : "1-1-a-439",
  "status" : "WAITING_FOR_CONFIRMATION",
  "type" : "AUTH",
  "externalId" : "ext#21",
  "params" : {
    "acsUrl" : "http://localhost:9191/test/acs/3ds1",
    "PaReq" : "good"
  },
  "actions" : {
    "required" : [ {
      "type" : "complete3ds"
    } ]
  }
}

Complete3ds

POST /card/1-1/operations/1-1-a-489/complete3ds HTTP/1.1
W1-Signature: PIvfgwNc1QAY724teHX/TdMxzrVoMVoHCbd7V80u58RTdqbiYsdDiTjeGF9CIZtwsRC5JMuPy9DbQPjMNf4BWd+dZBIT7glgMFYx6mC8n6sxNkNbMWY5jnsFekd57a2AJ+AzTcAhHit6NGh2QLmcZpMPwYneoR4I4EQDl8NFVsi9uFu5TVx/PX5WPjWTL//vjbOqX+/mXCCxrjiXaV4nvQ9RQDybsTLFhJz3iXGSeOW+KOyznkKu22Q21TywDtwOQA5ZwI2fQp6vlMgYEFq7FjMrHbGUP+LULSR5pR37q/G9gJXrHd6ft+94l0MFCl/THNRauQ/2j1VK0GFL55fR5g==
Content-Type: application/json; charset=UTF-8
Host: localhost:8080
Content-Length: 26

{
  "paRes" : "verified"
}
HTTP/1.1 200 OK
Date: Fri, 26 Nov 2021 21:15:15 GMT
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 169

{
  "operationId" : "1-1-a-489",
  "status" : "SUCCEEDED",
  "type" : "PURCHASE",
  "externalId" : "ext#86",
  "params" : { },
  "actions" : {
    "required" : [ ]
  }
}

Уведомление клиента со стороны Flexo (Callback)

POST /test/emptycallback HTTP/1.1
W1-Signature: oItTOLnwtvBLsu22bIc6xxAsgL/f5r9TAlUHJExTmLT02sx1Q1xcT9+MRf35DTLG9rQdpBquRlbQTPRn4epztiT+mMA7LHwnvKdSK/MPs5J/a837j8TDX9SoB0giTCjTxIi/d0nkk+YwIORpCR9KDLHH9gPTP206cf9I6hhyoj1sDx13ZqGipl/DzuPxVGNRL770Kp+ox/84XsSu5E7tQRic+rlfqFkM/elWP/MXFk3soe1lRU7z6XPMkAoa2pjD+T+KtzLFP+juffz+zqqkcbEx19I47taGqBct+qHDcl4lVbugRFY9ukW+GPZK4AFZeIu9Rm8zR5WFd58GHTSysg==
Content-Type: application/json; charset=UTF-8
Host: localhost:8080
Content-Length: 840

{
  "id" : "1-1-a-437",
  "type" : "PURCHASE",
  "externalId" : "ext#19",
  "successful" : true,
  "amount" : {
    "amount" : 10.55,
    "currency" : "USD"
  },
  "baseAmount" : {
    "amount" : 10.55,
    "currency" : "USD"
  },
  "registeredMethods" : [ {
    "entity" : {
      "id" : "1-54"
    },
    "type" : "RECURRING_TOKEN"
  }, {
    "entity" : {
      "id" : "payoutToken-491679-something-9761"
    },
    "type" : "PAYOUT_TOKEN"
  } ],
  "merchantParameters" : {
    "param1" : "anything you want for callback"
  },
  "status" : "SUCCEEDED",
  "transactions" : [ {
    "type" : "PURCHASE",
    "status" : "SUCCEEDED"
  }, {
    "type" : "COMPLETE3DS",
    "status" : "SUCCEEDED"
  } ],
  "payer" : {
    "paymentMethod" : {
      "entity" : {
        "pan" : "491679XXXXXX9761"
      },
      "type" : "MASKED_CARD"
    }
  }
}
HTTP/1.1 200 OK
Date: Fri, 26 Nov 2021 21:14:25 GMT
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers