Описание: Initiate sale

Введение

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