Описание: Check sale

Введение

Описание: Check sale инициируется через HTTPS POST запрос с использованием URL и параметров.
Описание: Check sale используется в целях безопасности и позволяет SBC сравнить данные, отправленные приложением Присоединяющейся Стороны, с данными, хранящимися на сервере Присоединяющейся Стороны.
Настоятельно рекомендуется отвечать актуальной информацией, хранящейся на сервере Присоединяющейся Стороны.

API URL

Примечание

Это пример URL на сервере Присоединяющейся Стороны.

Сервер Присоединяющейся Стороны

https://proxy.connectingpartyserver.com/sale/{invoiceId}/check

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

Название параметра

Описание

Значение

consumer


Необходимость: Обязательно
Тип: Object

consumer.device


Необходимость: Обязательно
Тип: Object

consumer.device.serialNumber

Серийный номер устройства потребителя.

Необходимость: Обязательно
Тип: String
Длина: 1-50

session


Необходимость: Обязательно
Тип: Object

session.accessToken

Ключ access token потребителя, отправленный приложением Присоединяющейся Стороны.

Необходимость: Обязательно
Тип: String
Длина: 32-128

session.nonce

Значение, отправленное приложением Присоединяющейся Стороны.

Необходимость: Обязательно
Тип: String
Длина: 32-128

session.signature

Значение, отправленное приложением Присоединяющейся Стороны.

Необходимость: Обязательно
Тип: String
Длина: 32-128

session.token

Session token транзакции sale.

Необходимость: Обязательно
Тип: String
Длина: 16-36

sourceOfFunds

Необходимость: Опционально
Тип: Object

sourceOfFunds.reference

Необходимость: Опционально
Тип: Object

sourceOfFunds.reference.clientCardId

Идентификатор ссылки на карту-источник (на стороне клиента), если он был отправлен в запросе Perform sale.

Необходимость: Опционально
Тип: String
Длина: 1-128

Параметры успешного ответа

Название параметра

Описание

Значение

invoiceId

Идентификатор транзакции sale

Необходимость: Обязательно
Тип: String

session


Необходимость: Обязательно
Тип: Object

session.checkSignature

Контрольная сумма, сгенерированная алгоритмом hmac-sha1 (см. Вычисление подписи) из конкатенации consumer.device.serialNumber, session.nonce, endpointId, invoiceId, sourceOfFunds.reference.serverCardId (при наличии).

Необходимость: Обязательно
Тип: String

session.nonce

Уникальная случайная строка, сгенерированная сервером Присоединяющейся Стороны в ответе Initiate sale.

Необходимость: Обязательно
Тип: String

session.token

Session token транзакции sale.

Необходимость: Обязательно
Тип: String

consumer.email

Email потребителя, если он был отправлен в исходной транзакции привязки карты.

Необходимость: Опционально
Тип: String

sourceOfFunds

Необходимость: Опционально
Тип: Object

sourceOfFunds.reference

Необходимость: Опционально
Тип: Object

sourceOfFunds.reference.serverCardId

Идентификатор ссылки на карту-источник (на стороне сервера).

Необходимость: Опционально
Тип: String

transaction.currency

Буквы верхнего регистра (alpha-код по ISO 4217).

Необходимость: Опционально
Тип: String

transaction.randomSumCentis

Случайная сумма (для проверки случайной суммы), 1.00 EUR = 100 центов.

Необходимость: Опционально
Тип: Integer

Параметры неуспешного ответа

Название параметра

Описание

Значение

error

Тип: Object

error.cause

Причина ошибки. Возможные значения: FILTERED, INVALID_REQUEST, SERVER_FAILED, SERVER_UNAVAILABLE.

Тип: Enum

error.code

Уникальный код ошибки.

Тип: String

error.message

Описание ошибки.

Тип: String

invoiceId

Идентификатор транзакции sale.

Тип: String

Пример запроса

{
  "consumer": {
    "device": {
      "serialNumber": "string"
    }
  },
  "session": {
    "accessToken": "string",
    "nonce": "string",
    "signature": "string",
    "token": "string"
  },
  "sourceOfFunds": {
    "reference": {
      "clientCardId": "string"
    }
  }
}

Пример успешного ответа

{
  "consumer": {
    "email": "string"
  },
  "invoiceId": "string",
  "session": {
    "checkSignature": "string",
    "nonce": "string",
    "token": "string"
  },
  "sourceOfFunds": {
    "card": {
      "expiry": {
        "month": "integer",
        "year": "integer"
      },
      "holder":{
        "firstName": "string",
        "lastName": "string"
      },
      "number": "string"
    },
    "reference": {
      "serverCardId": "string",
    }
  },
  "transaction": {
    "currency": "string",
    "randomSumCentis": "integer"
  }
}

Пример неуспешного ответа

{
  "error": {
    "cause": "enum",
    "code": "string",
    "message": "string"
  },
  "invoiceId": "string"
}