Описание: Initiate sale

Введение

Инициирование продажи выполняется запросом HTTPS POST с использованием URL и параметров.
Для инициирования продажи приложение Присоединяющейся стороны отправляет {accessToken} с суммой транзакции и другими параметрами устройства на сервер Присоединяющейся стороны; они используются для запуска сеанса с уникальными случайными {nonce} и зашифрованной {signature}.
In ответ Присоединяющаяся сторона’s server also provides information about invoice in Присоединяющаяся сторона’s system and endpoint in site.company_название. SBC

API URL

Примечание

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

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

https://proxy.connectingpartyserver.com/sale/initiate-sale

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

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

Описание

Значение

consumer

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

consumer.device

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

consumer.device.serialNumber

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

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

transaction

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

transaction.amountCentis

Сумма транзакции: 1,00 EUR = 100 центов.

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

transaction.currency

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

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

session

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

session.accessToken

Ключ токена доступа, полученный при необязательной аутентификации потребителя.

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

consumer.device.imei

Международный идентификатор мобильного оборудования устройства потребителя.

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

location

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

location.lat

Широта указывается в диапазоне от -90.0 до +90.0 включительно.

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

location.lng

Долгота указывается в диапазоне от -180.0 до +180.0 включительно.

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

consumer.ipAddresses

IP-адреса потребителя.

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

consumer.ipAddresses[]

IP-адрес потребителя.

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

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

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

Описание

Значение

endpointId

Идентификатор точки входа для транзакции Sale.

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

invoiceId

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

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

session

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

session.nonce

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

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

session.signature

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

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

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

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

Описание

Значение

error

Тип: Object

error.cause

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

Тип: Enum

error.code

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

Тип: String

error.message

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

Тип: String

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

{
  "consumer": {
    "device": {
      "imei": "string",
      "serialNumber": "string"
    },
    "ipAddresses": ["string"]
  },
  "location": {
    "lat": "double",
    "lng": "double"
  },
  "session": {
    "accessToken": "string"
  },
  "transaction": {
    "amountCentis": "integer",
    "currency": "string"
  }
}

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

{
  "endpointId": "string",
  "invoiceId": "string",
  "session": {
    "nonce": "string",
    "signature": "string"
  }
}

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

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