.. meta:: :description: API Check Verification в серверном потоке Mobile Device SBC: серверный этап проверки перед выполнением инициированной мобильным приложением проверки карты. .. _api_check_verification: Описание: Check verification ################## .. role:: ex .. role:: code Введение ^^^^^^^^^^^^ | Проверка верификации инициируется через запрос :code:`HTTPS POST` с использованием :ref:`URLs` и :ref:`parameters`. | Проверка верификации используется в целях безопасности и позволяет SBC сравнивать данные, отправленные приложением Присоединяющейся стороны, с данными, хранящимися на сервере Присоединяющейся стороны. | Настоятельно рекомендуется отвечать актуальной информацией, хранящейся на сервере Присоединяющейся Стороны. .. _api_url_check_verification: API URL ^^^^^^^^ .. note:: | Это пример URL на сервере Присоединяющейся Стороны. .. list-table:: :widths: 100 :header-rows: 1 :class: longtable * - Сервер Присоединяющейся Стороны * - :ex:`https://proxy.connectingpartyserver.com/verification/{invoiceId}/check` .. _api_parameters_check_verification: Параметры запроса ^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`consumer` - - | ``Тип``: **Object** * - :code:`consumer.device` - - | ``Тип``: **Object** * - :code:`consumer.device.serialNumber` - Серийный номер устройства потребителя. - | ``Тип``: String | ``Длина``: 1-50 * - :code:`session` - - | ``Тип``: **Object** * - :code:`session.accessToken` - Ключ access token потребителя, отправленный приложением Присоединяющейся Стороны. - | ``Тип``: String | ``Длина``: 32-128 * - :code:`session.nonce` - Значение, отправленное приложением Присоединяющейся Стороны. - | ``Тип``: String | ``Длина``: 32-128 * - :code:`session.signature` - Значение, отправленное приложением Присоединяющейся Стороны. - | ``Тип``: String | ``Длина``: 32-128 * - :code:`session.token` - Токен сеанса транзакции верификации. - | ``Тип``: String | ``Длина``: 16-36 Параметры успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`invoiceId` - Идентификатор транзакции верификации. - | ``Необходимость``: Обязательно | ``Тип``: String * - :code:`session` - - | ``Необходимость``: Обязательно | ``Тип``: **Object** * - :code:`session.checkSignature` - Контрольная сумма, сгенерированная hmac-sha1 (см. :ref:`signature-computation`) из конкатенации consumer.device.serialNumber, session.nonce, endpointId и invoiceId. - | ``Необходимость``: Обязательно | ``Тип``: String * - :code:`session.nonce` - Unique random string generated by Присоединяющаяся сторона's server in Initiate verification ответ. - | ``Необходимость``: Обязательно | ``Тип``: String * - :code:`session.token` - Токен сеанса транзакции верификации. - | ``Необходимость``: Обязательно | ``Тип``: String * - :code:`billing` - | - | ``Необходимость``: Опционально | ``Тип``: **Object** * - :code:`billing.address` - | - | ``Необходимость``: Опционально | ``Тип``: **Object** * - :code:`billing.address.city` - Название города. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.address.country` - Трёхбуквенный код страны ISO. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.address.postcodeZip` - Почтовый индекс ZIP. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.address.state` - Поле «Штат» используется при наличии. Например, Лос-Анджелес находится в штате CA. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.address.street` - Поле «Улица» используется для названий районов и улиц. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.address.street2` - Поле «Улица 2» используется для длинных адресов. Обычно оно содержит номер квартиры и здания. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`billing.phone` - Контактный номер телефона клиента. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`consumer.birthDay` - Потребитель's birth day in "ddMMyyyy" format. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`consumer.email` - Потребитель's email адрес. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`consumer.ipAddresses` - IP-адреса потребителя. - | ``Необходимость``: Опционально | ``Тип``: List * - :code:`consumer.ipAddresses[]` - IP-адрес потребителя. - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`transaction.currency` - Буквы верхнего регистра (alpha-код по ISO 4217). - | ``Необходимость``: Опционально | ``Тип``: String * - :code:`transaction.randomSumCentis` - Случайная сумма (для проверки случайной суммы), 1.00 EUR = 100 центов. - | ``Необходимость``: Опционально | ``Тип``: Integer Параметры неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`error` - - | ``Тип``: **Object** * - :code:`error.cause` - Причина ошибки. Возможные значения: ``FILTERED``, ``INVALID_REQUEST``, ``SERVER_FAILED``, ``SERVER_UNAVAILABLE``. - | ``Тип``: Enum * - :code:`error.code` - Уникальный код ошибки. - | ``Тип``: String * - :code:`error.message` - Описание ошибки. - | ``Тип``: String * - :code:`invoiceId` - Идентификатор транзакции верификации. - | ``Тип``: String Пример запроса ^^^^^^^^^^^^^^^ .. code-block:: json { "consumer": { "device": { "serialNumber": "string" } }, "session": { "accessToken": "string", "nonce": "string", "signature": "string", "token": "string" } } Пример успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "billing": { "address": { "city": "string", "country": "string", "postcodeZip": "string", "state": "string", "street": "string", "street2": "string" }, "phone": "string" }, "consumer": { "birthDay": "string", "email": "string", "ipAddresses": ["string"] }, "invoiceId": "string", "session": { "checkSignature": "string", "nonce": "string", "token": "string" }, "transaction": { "currency": "string", "randomSumCentis": "integer" } } Пример неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "error": { "cause": "enum", "code": "string", "message": "string" }, "invoiceId": "string" }