Результаты поиска
    Ничего не найдено
    Оглавление
    Moneta ID

    Moneta ID

    Идентификация с помощью Moneta Id
    Настройка идентификации через внешних провайдеров

    Подразделы Moneta ID

    Идентификация с помощью Moneta Id

    Сервис Moneta ID предназначен для выполнения упрощенной или полной идентификации клиентов через внешних провайдеров, например сотовых операторов (МТС, Beeline, Тинькофф).

    1. Схема взаимодействия

    Процесс взаимодействия между партнером и Moneta Id определяется следующими шагами:

    1. Приложение партнера формирует и подписывает токен, в котором сохранена информация о Пользователе МОНЕТА.РУ (юните), для которого нужно провести идентификацию, тип идентификации и другая информация.
    2. Приложение партнера перенаправляет браузера Пользователя ЭСП МОНЕТА.РУ на специальный адрес, передав токен безопасности.
    3. MonetaId запрашивает у Пользователя ЭСП МОНЕТА.РУ информацию, необходимую для проведения идентификации.
    4. MonetaId проводит процедуру идентификации.
    5. MonetaId уведомляет приложение партнера о ходе идентификации.
    6. MonetaId возвращает Пользователя ЭСП МОНЕТА.РУ в приложение партнера.
    Схема взаимодействия Схема взаимодействия

    2.Стенды

    Тестовый контур

    Для отладки взаимодействия и тестирования в настоящее время доступны следующие окружения:

    APIТегОписание
    https://mid.demo.moneta.ru/DemoДемо тестовый стенд

    Стартовый URL для перенаправления клиентов соответственно:

    https://<API-root>/identification?subscriberId=<subscriberId>&unitId=<unitId>&phone=<phone>&cnonce=<cnonce>&signature=<signature>

    Тестовый контур

    Данный режим предполагает подключение и работе через www.demo.moneta.ru. Для отладки прохождения упрощенной идентификации в демонстрационном режиме, можно использовать любые персональные данные клиента. Чтобы протестировать изменение статуса необходимо задать задать одну из “якорных” фамилий:

    1. “Петров” - УПРИД будет пройден успешно.
    2. “Сидоров” - УПРИД будет всегда отдавать статус “В процессе”.
    3. Смирнов" - УПРИД всегда будет завершаться неудачно.

    3. Регистрация партнера

    Партнеру необходимо предоставить следующие данные на адрес mp@payanyway.ru:

    Обязательная информация:

    1. Полное и короткое наименование проекта.
    2. URL для отправки уведомлений о статусе прохождения идентификации (statusURL).
    3. URL для отправки уведомлений о проблемах в работе виджета (notifyURL).

    Со стороны Moneta Id будет предоставлена следующая информация:

    apiSecret - Код проверки целостности данных. Код, обеспечивающий идентификацию отправителя и возможность проверки целостности данных, известный только системе Moneta Id и партнеру. Код будет направлен на адрес электронной почты от Личного кабинета партнера, указанный в Договоре.

    subscribeURL - Специальная ссылка для установления доверия.

    4.Установление доверия

    Для формирования сервисом Moneta SBP/FPS операций перевода (вывода) необходимо пройти процедуру установления доверия.

    Для проведения идентификации Пользователей ЭСП МОНЕТА.РУ с помощью сервиса MonetaId необходимо пройти процедуру установления доверия с сервисом.

    Партнеру необходимо:

    1. Войти в Личный кабинет партнера с Пользователями ЭСП МОНЕТА.РУ на www.moneta.ru (или www.demo.moneta.ru для демо контура).
    2. Перейти по ссылке, которую предоставил сервис MonetaId.
    3. В появившемся диалоге ознакомиться с информации о том, какие разрешения партнер предоставит сервису Moneta SBP/FPS.
    4. Подтвердить предоставление разрешений.

    Перечень действий с юнитами/профилями Пользователей ЭСП МОНЕТА.РУ, которые партнер может предоставить сервису MonetaId:

    • GetProfileInfo
    • FindProfileDocumentFiles
    • FindProfileDocuments
    • EditProfileDocument
    • EditProfile
    • ApprovePhoneSendConfirmation
    • ApprovePhoneApplyCode
    • SimplifiedIdentification

    5.Аутентификация

    Общая информация

    Для обновления информации в профиле Пользователя ЭСП МОНЕТА.РУ сервисом MonetaId партнер должен сформировать специальный одноразовый токен.

    Формирование токена и подписи

    Предварительные условия:

    1. Необходимо пройти процедуру регистрации партнера и получит ApiSecret.
    2. Необходимо установить доверительные отношения с сервисом MonetaId.

    Для реализации алгоритма формирования единовременного токена использованы следующие стандарты:

    1. RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
    2. RFC 2104 HMAC: Keyed-Hashing for Message Authentication.

    Токен состоит из 2-х частей:

    1. Информационное сообщение, содержащее ключевую информацию о партнере и Пользователе ЭСП МОНЕТА.РУ, служебную информацию.
    2. Подпись/Хеш от информационного сообщения из п.1., и использование заранее полученного общего секрета - ApiSecret.

    Формирование информационного сообщения

    Информационное сообщение состоит из набора ключ-значение, которые закодированы в соответствии с правилами URL-кодирования строк по RFC 3986. Пример:

    Ниже приведен набор обязательных параметров, которые необходимо указать при формировании информационного сообщения (ключи должны следовать в отсортированном порядке, как в таблице ниже):

    КлючОписаниеТипПример
    subscriberIdИдентификатор партнера в системе MonetaIdString
    unitIdИдентификатор пользователя в НКО “Монета”, для которого необходимо провести идентификацию.Число11111
    phoneСотовый телефон. Сотовый телефон в личном кабинете пользователя должен быть “подтвержден”.Число9001234567
    cnonceОдноразовый код, выбранный случайным или псевдослучайным образом, использующееся для невозможности повторного использования одного и того же токенаЧисло10201010
    unitIdИдентификатор профиля/юнита в НКО “Монета”, для которого необходимо провести идентификацию.Число100500
    successURLURL страницы партнера, куда должен попасть пользователь, если идентификация проведена успешноURL
    returnURLURL страницы партнера, куда должен вернуться пользователь при закрытии виджетаURL
    failURLURL страницы партнера, куда должен попасть покупатель, если идентификация не была проведенаURL
    inprogressURLURL страницы партнера, куда должен попасть пользователь после успешного запроса на идентификацию, до получения ответа о статусе запроса на идентификациюURL
    signatureКод для идентификации отправителя и проверки целостности данных.

    Пример итогового информационного сообщения:

    subscriberId=testSubscriber&unitId=1000&phone=9001234567&cnonce=ygfhkJIBiT3kxjq5P74Tc00Ry6nkC5kK&signature=cf1299778ba5b9310bd2cd42747a43fb79ce72aad16a22704e633900c6dbc9e9a4b61afe53c3fec27c600ef5625a0423b75cc4d96ecaf2890b1dff8db36d4d03

    Формирование подписи

    После того, как информационное сообщение сформировано, необходимо вычислить подпись/хеш с использованием общего секрета - ApiSecret.

    Кодирование ключа производится путем конкатенации в одну строку значений параметров запроса и кода проверки целостности данных, кодированием по алгоритму HMAC-SHA512 и представлением массива байт в виде строки шестнадцатеричных чисел:

    Алгоритм формирования:

    1. Вычислить HMAC-SHA512 хеш используя пару (информационное сообщение, секрет).
    2. Полученный массив байт перевести в строку в шестнадцатеричном представлении.
    // message - значениия параметров запроса
    // secret  - секрет/apiSecret
    
    message = subscriberId + unitId + phone + cnonce + successURL + returnURL + failURL + inprogressURL
    signatureBytes  = hmac_sha512(message, secret)
    signatureString = bytesToHex(signatureBytes)

    После того, как подпись в виде hex-строки сформирована, необходимо добавить ее к параметрам запроса с ключом signature:

    subscriberId=testSubscriber&unitId=1000&phone=9001234567&cnonce=ygfhkJIBiT3kxjq5P74Tc00Ry6nkC5kK&signature=cf1299778ba5b9310bd2cd42747a43fb79ce72aad16a22704e633900c6dbc9e9a4b61afe53c3fec27c600ef5625a0423b75cc4d96ecaf2890b1dff8db36d4d03

    Финальным шагом необходимо полученные параметры, использовать при перенаправлении на виджет идентификации.

    // БРАУЗЕР КЛИЕНТА
    // делаем редирект в браузере клиента на указанный адрес
    
    // DEV окружение
    https://mid.demo.moneta.ru/identification?{параметры запроса}
    
    // PROD окружение
    https://mid.moneta.ru/identification?{параметры запроса}

    6.Уведомление о статусе идентификации

    Результат мобильной идентификации или упрощенной идентификации будет передан на указанный партнером при регистрации URL в виде GET запроса с query параметрами.

    Список передаваемых партнеру параметров:

    КлючТипОписаниеПример
    typestringтип уведомления: IDENTIFICATIONtype=IDENTIFICATION
    unitIdnumberидентификатор юзера в монете, который проходил проверку.unitId=10050
    statusstringстатус прохождения УПРИД: SUCCEEDEDstatus=SUCCEEDED
    messagestring10201010
    signaturestringподпись всех переданных параметров.signature=1d9…db6

    Проверка signature

    Подпись всех переданных параметров через механизм аналогичный механизму формирования подписи от партнера.

    Таким образом партнер может убедиться в достоверности вызова, сделав проверку:

    hmac_sha512(params, secret) == signature

    Где params - это значениия параметров запроса.

    Код ответа на запрос с уведомлением о статусе идентификации

    Для того, чтобы сообщить Moneta Id, что партнер получил информацию о статусе идентификации, скрипт партнера (statusURL) должен дать ответ с http-кодом 200.

    Попытки отправки уведомления будут повторены:

    • Если Moneta Id не смогла получить ответот обработчика.
    • Если сервер партнера был недоступен.