Deep link

Материал из PayControl Wiki
Перейти к: навигация, поиск

Deep link - (рус. - Внешнее связывание или Глубинное связывание). Относительно myDSS и SberSign - это механизм вызова функции подписания документа или текстовых данных из стороннего приложения, работающего на том-же мобильном устройстве.

Внешнее связывание (Глубинное связывание) — в интернете, это помещение на сайт гиперссылки, которая указывает на страницу, находящуюся на другом веб-сайте, вместо того, чтобы указать на начальную (домашнюю, стартовую) страницу того сайта. Такие ссылки называются внешними ссылками (глубинными ссылками).

Как работает Deep Link в приложении

  1. на приложение myDSS при установке регистрируется URL-схема mydss://
  2. при вызове myDSS через эту схему выполняется следующее:
    • запускается подтверждение (аналогично нажатию в меню Подтвердить операции) на указанного пользователя (если указан) или на всех пользователей (если не указан)
    • проходит процесс подтверждения указанных (если указаны) или всех (если не указаны) операций
    • кнопки и стрелка "Назад" на экранах процесса подтверждения возвращают обратно в вызываюшее приложение
    • после того, как все операции подтверждены (на экране "Нет операций для подтверждения") появляется кнопка "Назад", также возвращающая в вызывающее приложение
  3. для возврата вызывающее приложение при вызове указывает свою URL-схему и обратный адрес вызова
  4. тестовое приложение TestUrl делает следующее
    • позволяет указать параметры вызова myDSS
    • принимает обратный вызов
    • отображает результат обратного вызова (работы myDSS)

Префиксы Deep link

  • mydss:// - myDSS
  • sbersign:// - SberSign

Формат URL (на примере myDSS)

mydss://[operation]?[params]

где

  • `operation = start_confirmation`
  • `params`:
    • `[mandatory] callback` - url для возврата в вызывающее приложение, закодированный по RFC 3986 (urlencode)
    • `[optional] user_id` - идентификатор пользователя для подтверждения
    • `[optional] transaction_id_list` - операции для подтверждения, comma-separated, применяется только вместе с user_id

Пример:

mydss://start_confirmation?callback=testapp%3A%2F%2Fmydss_callback&user_id=test-ebaad8fd-cafe-43e6-9fed-33ffb31c65a7&transaction_id_list=7b3bf903-55bf-4867-b224-294fd223afbf,858dfa54-3295-4b1a-9388-ff5534bc9590

В callback отправляется результат подтверждения следующим образом

[callback_url]?mydss_result=[result]&error=[error]

где

  • `result`
    • `suceess` - все операции обработаны
    • `processed_partially` - обработано операций больше 0, но меньше общего количества
    • `user_canceled` - отменено пользователем
    • `error` - ошибка
  • `error`
    • 0, если result не равно 'error'
    • код ошибки из PayControl SDK или с сервера, если ошибка
    • 17, если указанный в user_id идентификатор пользователя не зарегистрирован

Пример:

testapp://mydss_callback?mydss_result=error&error=278