Deep link
Deep link - (рус. - Внешнее связывание или Глубинное связывание). Относительно myDSS и SberSign - это механизм вызова функции подписания документа или текстовых данных из стороннего приложения, работающего на том-же мобильном устройстве.
Внешнее связывание (Глубинное связывание) — в интернете, это помещение на сайт гиперссылки, которая указывает на страницу, находящуюся на другом веб-сайте, вместо того, чтобы указать на начальную (домашнюю, стартовую) страницу того сайта. Такие ссылки называются внешними ссылками (глубинными ссылками).
Как работает Deep Link в приложении
- на приложение myDSS при установке регистрируется URL-схема mydss://
- при вызове myDSS через эту схему выполняется следующее:
- запускается подтверждение (аналогично нажатию в меню Подтвердить операции) на указанного пользователя (если указан) или на всех пользователей (если не указан)
- проходит процесс подтверждения указанных (если указаны) или всех (если не указаны) операций
- кнопки и стрелка "Назад" на экранах процесса подтверждения возвращают обратно в вызываюшее приложение
- после того, как все операции подтверждены (на экране "Нет операций для подтверждения") появляется кнопка "Назад", также возвращающая в вызывающее приложение
- для возврата вызывающее приложение при вызове указывает свою URL-схему и обратный адрес вызова
- тестовое приложение 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