Сбербанк инвестиции api

Сбербанк инвестиции api

Сбербанк инвестиции api

Сбербанк инвестиции api


✅ ️Нужны деньги? Хочешь заработать? Ищешь возможность?✅ ️

✅ ️Заходи к нам в VIP телеграм канал БЕСПЛАТНО!✅ ️

✅ ️Это твой шанс! Успей вступить пока БЕСПЛАТНО!✅ ️

======================



>>>🔥🔥🔥(Вступить в VIP Telegram канал БЕСПЛАТНО)🔥🔥🔥<<<



======================

✅ ️ ▲ ✅ ▲ ️✅ ▲ ️✅ ▲ ️✅ ▲ ✅ ️






Экономия времени, денег и сокращение ошибок — как Fintech API Сбербанка помогает бизнесу

Сбербанк инвестиции api

Fintech API Сбербанка: как современные технологии упрощают взаимодействие бизнеса с банком

Если вкратце и чуть более погружаясь в технику: в нашем случае JSON — это транспортный уровень протокола, а в статье описана детализация спецификации представительского уровня протокола согласно сетевой модели OSI. Это вопрос договорённостей и удобства. Для нужд демонстрации было удобно дать описания в YAML просто потому что он проще читается. Плюс к этому рекламный шум вроде 'вам одобрена кредитная карта на стотыщьмиллионов' в самом топе раздражает. Отвечая на вопрос, поставленный в заголовке 'как работает', могу с уверенностью сказать 'не очень хорошо'. Только полноправные пользователи могут оставлять комментарии. Войдите , пожалуйста. Все сервисы Хабра. Как стать автором. Войти Регистрация. Сбер Больше чем банк. Настало время приоткрыть завесу тайны — в этой статье мы расскажем о некоторых подходах, которые используем в разработке. Здесь не будет биг даты, блокчейна, аджайла и другого рокет-сайенса. Зато будет описано API, на котором работают наши самые популярные приложения. Ценность этой статьи не в прорывных идеях, а в подходах и практиках, которые работают в большом приложении с одной из самых требовательных аудиторий. Надеемся, что наш опыт поможет читателям сделать свой продукт лучше, а главное масштабируемым, потому что большинство шишек при разработке API мы уже поймали и исправили. О чем пойдет речь Мы расскажем, как в мобильном и веб приложениях Сбербанк Онлайн работают платежные сценарии, а именно про API между приложениями и сервер-сайдом. Почему фокус на API? Все просто — это фактически единственный мостик, который соединяет клиентские приложения и бэкенд. Если проект небольшой, то мы можем легко менять API и переписывать под него приложения. Но если проект масштабный такой, как у нас , то даже небольшие изменения API требуют вовлечения большого количества ресурсов как на фронте, так и на бэкенде, и становятся очень дорогими. И второй момент — чем раньше мы зафиксировали API, тем раньше фронтальные и бэковые команды могут начинать разработку. Им просто надо будет сойтись в одну точку. Сначала мы немного расскажем о наших возможностях и ограничениях, чтобы было понятно, почему мы выбирали то, а не иное решение, а потом представим сам протокол API на верхнем уровне. Специфика и мотивация Приложения большие. Когда мы писали эту статью, приложение Сбербанк Онлайн на Android занимало около строк кода, на iOS — строк кода. И это только наш код, без подключаемых библиотек. Обратная совместимость и много пользователей. MAU — 32 млн активных пользователей мобильного приложения. И если мы не сделаем обратную совместимость на уровне API, очень многим пользователям по всей стране придется качать приложения заново. Это очень нехорошо. Кстати, это одна из причин, почему у нас так много кода. Сбербанк Онлайн разрабатывает много небольших команд. Вы, наверное, слышали про Agile в Сбербанке. Это правда, мы работаем по Agile в командах по 9 человек. Приложение банковское: несмотря на то, что функциональность банковских приложений растет очень быстро, основное, что происходит в дистанционном банкинге — это последовательный процесс обработка клиентских заявок. Такие процессы мы называем workflow. Заявки эти могут быть разного рода и обрабатываются они огромным количеством взаимосвязанных сервисов в периметре банка. Два типа команд. Есть платформенные — они отвечают за разработку ядра приложения. И есть фичёвые команды — они создают прикладной функционал для конечных пользователей, используя архитектуру и инструменты, которые даёт платформа. Крайне важная история. Чтобы не разрабатывать бэк несколько раз — отдельно для мобильных приложений и отдельно, например, для веб-версии и банкоматов, нужно сделать так, чтобы API был максимально схожим для всех каналов как минимум должна быть одинаковой структура ответа. Мобильное приложение Данные меняются динамически. Самые популярные операции в мобильном приложении — платёж и перевод. Реквизиты поставщиков услуг, набор полей, которые необходимо заполнить пользователю, — это динамическая информация, которая может часто меняться. При этом пользователи могут не обновлять приложение, после того как установили его на устройство. Просто потому что могут. Чаще на это есть весомые причины, например, для обновления приложения нужно обновить версию ОС, а для этого купить новый телефон. Поэтому нам нужно решение, которое позволит менять данные без релиза приложения. Мобильный интернет: наши приложения должны работать везде, даже где интернет нестабильный и медленный. Поэтому мы всегда боремся за размер и количество сообщений между мобильными приложениями и сервер-сайдом. Лучший клиентский опыт: мы выбрали для себя основную технологию разработки мобильных приложений — разработка на нативных языках. Только так можно получить лучший клиентский опыт. Если обобщить все эти требования — приложения должны разрабатываться на нативных языках, иметь повторно используемые компоненты внутри себя, но при этом вся бизнес-логика должна управляться со стороны сервера. Как делать не стали После того как мы обозначили граничные условия, расскажем, какие существующие решения мы анализировали. Кроме этого, надо предусмотреть песочницу, обработку ошибок, какой-то этап пилотирования — псевдокод должен постепенно распространяться на пользовательские устройства и при любых сбоях откатываться назад. Всё это усложняет разработку без ощутимых преимуществ. Декларации стилей в конечной реализации всегда будут качественнее, ближе к реальности и корректнее работать с краевыми случаями. Кроме этого, бывает, что компоненты со схожей логикой принципиально по-разному работают на разных устройствах: например, ввод номера телефона — с телефонной книгой на мобильном устройстве и без неё в вебе. Фиксация модели данных в интерфейсе приложения Этот способ еще называется «прибить гвоздями». Смысл в том, что интерфейс приложения строится на уникальных идентификаторах объектов, которые передаются с сервера. В такой схеме любые изменения на стороне сервера приводят к переработкам клиентской части. Невозможно повторно использовать код. Сложно поддерживать. Ну или если проект совсем небольшой и проектировать API дороже, чем быстро переделать пользовательский интерфейс под изменения в API. Стили Добавляем к каждому объекту признак стиля. UI приложений строим на основании этого признака. Стилей ограниченное число, поэтому появляется возможность строить интерфейс динамически. Но с увеличением функциональности UI приходится увеличивать количество стилей. В этом варианте становится возможно управлять отображением отдельных элементов, но повышается сложность реализации связанности между разными полями. Наша задача затрагивает в том числе визуальное расширение — добавление новых полей ввода, так что такой вариант нам не подходит. Напрямую не используешь, но запомним — потом пригодится. Как решили делать UI-контейнеры Объекты упаковываются в контейнеры, презентационную логику приложения строим на этих контейнерах. Основное преимущество — можем группировать несколько простых объектов в один контейнер. При этом базовых типов объектов — ограниченное число, и весь бизнес-транспорт реализуется на них. Мы выбрали именно этот подход. Сначала мы опишем протокол API, а потом — как устроены фрэймворки внутри мобильных и веб-приложений. Как добираемся до точки входа, не рассматриваем — это не процесс и для этого есть свой API о нем мы тоже как-нибудь расскажем. Итого, процесс у нас начинается с точки входа: Транспорт данных Для начала договоримся об основных принципах — как передаём данные. За основу возьмём самый простой подход — пары «ключ-значение». Ключом пусть будет строка из букв латинского алфавита, значение — тоже строки, но уже произвольные. Формы для заполнения бывают сложные, с вложенными элементами и подразделами, значит, надо допускать вложенность. Можно именовать ключи в формате camelCase, но они могут быть плохо читаемым например, в логах или даже «портиться» в системах, нечувствительных к регистру. Нужно ввести разделитель. Самый очевидный разделитель — точка — во многих языках используется для доступа к свойствам объекта. При неаккуратном использовании ключи с таким разделителем будут создавать словари или объекты , в которых возможны коллизии. В конце концов, договорились на двоеточии: с одной стороны, явное визуальное разделение и семантическое отражение вложенности, с другой стороны, достаточно безопасно для всех используемых языков. Что делать с повторяемыми полями? Вводим дополнительное правило: между парой разделителей могут быть либо латинские буквы, либо цифры. Получаются конструкции вида: childrenname:first. Пожив некоторое время с такой структурой, обнаруживаем ограничение: множественный выбор оказывается нетривиальным в реализации и требует дополнительных ухищрений на бэкэнде, чтобы держать высокую нагрузку. Решение: значение — либо строка, либо список строк. Так решение выглядит типовым, но в то же время накладные расходы оказываются незначительными. Шаги Шаг — это состояние процесса. Первый шаг у нас — выбор счета списания и счета зачисления и ввод суммы. UI на этой картинке не видно, потому что шаг — это про серверную логику, а не про презентационную. Есть два подхода к работе с шагами: можно передавать с сервера только разницу нарастающий итог в клиентском приложении или каждый шаг целиком нарастающий итог на сервере. Анализ требований показал, что в ходе процесса экран может формироваться по-разному на разных шагах ветвление процессов , поэтому вместо добавления управляющих команд для преобразования уже переданных сущностей проще каждый шаг передавать полностью таким, каким его должен увидеть пользователь. При старте шага клиентское приложение сразу же получает всю нужную информацию для построения экранов. Как правило, экраны используются, чтобы форма была проще для восприятия. В нашем случае всё просто: один шаг — один экран. Для экранов мы ввели два правила: переход между экранами может быть только линейным, без ветвлений; переход между экранами не требует взаимодействий с бэкэндом. Это означает, что экраны, по сути, становятся простыми группами и могут передаваться с бэкэнда сразу при входе на шаг. По сути, это ассоциация между управляющей командой в протоколе и куском кода и разметки в приложении. На первом экране три компонента: Счет списания Тот же компонент для счета зачисления Сумма перевода Иногда что-то может пойти не так: например, в старую версию приложения передался новый процесс или старая версия блока была удалена в клиентском приложении, но осталась в одном из процессов серверного приложения. В этом случае приложение выполняет мягкую деградацию: блок заменяется на системный простая группа полей , который не обладает никакой дополнительной логикой, а просто показывает поля в составе. Подробнее будет ниже. В таком случае форма будет менее красивой, но пользователь хотя бы сможет заполнить данные и отправить их на сервер. Затем сервер провалидирует ввод и вернёт ошибки, которые можно исправить. Типов полей ограниченное число и все они поддерживаются на уровне фрэймворка: text, checkbox, select, multiselect. Это значит, что любая версия приложения может отрисовать интерфейс, опираясь только на типы полей. Поля в UI-компонентах из нашего примера: 1. Поле со ссылкой на справочник в счете списания и счете зачисления. Почему ссылка на статический справочник? Потому что счет мы выбираем из списка карт счетов , без лишнего обращения к серверу. Два отдельных поля для суммы и валюты в компоненте ввода суммы Таким образом, формат для полей имеет такую структуру: 'field': 'id': 'type': 'title': 'value': 'style': 'validator': События Так как приложения ничего не знают о процессе, логично, чтобы события кнопки, которые видит пользователь тоже были частью ответа от сервера. События мы разделили на два типа. Как пример, это события «назад» и «продолжить». Первое осуществляет переход на шаг назад, а второе собирает заполненные данные с клиентской формы и отправляет их на сервер вместе с командой «Перейти на следующий шаг». В нашем случае на экране только основные события — «продолжить» и «назад». Они реализованы на уровне платформы. У всех событий есть ряд атрибутов, такие как сам тип события, title и признак видимости. И никакого UI на сервер-сайде вроде размера кнопки, положения и цвета. Эта логика реализуется на фронте. Если он небольшой, то мы его присылаем полностью в ответе от сервера и называем статическим. Сделано это для того, чтобы минимизировать количество запросов к сервер-сайду и время отклика на действие пользователя в интерфейсе. Чтобы его отобразить в форме на экране, добавляем поле с типом — selectList, одно из свойств которого — ссылка на статический справочник. Если справочник большой, то он реализуется в виде отдельного rest-сервиса. В интерфейсе это выглядит как текстовое поле, по мере заполнения которого возвращается список возможных вариантов из справочника. Вместе с полями передаются правила валидации и сообщения, которые отображаются, если валидация не прошла. Такое разделение вызвано не только архитектурой приложений, но и организационной структурой. Движок разрабатывают и поддерживают платформенные команды, а UI-контейнеры фактически являются точками расширения и их программируют фичёвые команды. Таким образом, большему количеству команд не нужно вносить изменения в ядро. Workflow engine Движок внутри приложений веб и мобильного знает, что начался процесс работы с документом и что согласно протоколу ему придёт ряд атрибутов: шаги, экраны, UI-контейнеры и типы полей. На этих данных рисуется базовый интерфейс — нижнее и верхнее меню, основные кнопки, UI на простых типах полей, если они используются. При этом движок не знает, сколько именно в сценарии будет шагов процесса, как шаги будут разбиты по экранам и какие там будут поля. Если сценарий изменится, например, потребуется отобразить новое поле, то его будет достаточно добавить в ответ сервера, и клиентское приложение его отобразит. Для этого выпускать релиз фронтального приложения не потребуется. Как работают UI-контейнеры? Анализ потребностей дизайнеров и бизнес-заказчиков показал, что все потребности не получится удовлетворить простым расширением атрибутивного состава полей. Поэтому нужны были точки расширения. Этими точками расширения стали UI-компоненты — это нативная реализация кода в самих приложениях, который идентифицируется движком по названию. При этом модель данных протокола используются только для транспорта данных на бэкенд, весь UX и UI реализуется на стороне приложения. Два режима работы фрэймворка Когда движок парсит модель данных, он сравнивает список имен UI-контейнеров с реестром, который хранится внутри приложения. Если приложение не находит имени компоненты, то интерфейс строится на простых типах полей. Процесс будет полностью рабочим, но на стандартных UI-элементах. Слева — как может отображаться контейнер для ввода суммы на списке из простых типов полей. Справа — если в сборке приложения есть UI-контейнер. Несмотря на то, что в режиме списка простых полей нет слайдера и есть отдельное поле вместо иконки с выбором валюты, — мы можем передать все данные с PL и процесс будет рабочим. И тут мы получаем одно из основных преимуществ движка — доставить пользователю изменения без обновления приложения. В сборке есть маппинг имен компонентов на классы, в которых запрограммирован UI этих компонентов и пользовательский интерфейс строится на нем. Каких правил мы стараемся придерживаться при работе с UI-компонентами: Поддерживать работу функционала в режиме списка простых типов полей. У любого прикладного проекта есть соблазн превратить динамический протокол в статический. Это не только позволит в будущем обновлять процессы на старых сборках, но и автоматически поддерживает логическую целостность API. Не менять модель данных JSON для UI-контейнера, если он уже готов проходит финальное тестирование или уже в продакшене. Так как логика на PL жестко связана с моделью данных, её изменение сломает функционал на версиях мобильного приложения, которые не обновляются. Тем не менее, модель можно расширять при условии сохранения обратной совместимости. Называть свой UI-компонент системным именем. Так как имя UI-компонента — обязательный атрибут протокола и должен быть минимум один на каждом экране, мы ввели специальное системное имя, которые реализует простой список полей. Не реализовывать бизнес-логику на UI-компонентах. Логику необходимо реализовывать на сервере, почему — писали выше. Coming soon… Мы очень старались писать лаконично, но это первая техническая статья про платформу Сбербанк Онлайн и она должна была многое охватить. Пишите в комментариях, что непонятно, что интересно — постараемся писать меньше, но чаще и в цель. У нас много интересных вызовов, и поэтому много материала. Укажите причину минуса, чтобы автор поработал над ошибками. Платежная система. Похожие публикации. Вакансии компании Сбер Frontend разработчик Антифрод. Machine Learning Engineer. Стажер Java школы. Team-lead Data Science со специализацией в Rec-Sys. Frontend Fullstack разработчик. Больше вакансий компании. Скажите, те, кто составляет ТЗ на ваши разработки, они хоть какое-то общее представление имеют о том, что нужно пользователю, или, как и большинство маркетологов, рассчитывают воспитать потребителя так, чтобы любил, что дали не не хотел иного? Есть еще ряд «мелких» проблем, которые выбешивают… например, вот эта «стартовая» анимация или «антивирусная» проверка… Чат — та еще песня… Надеюсь, в очередной версии вы добавите и лайки за репосты. Создание шаблонов платежей так и не сделали, зато сделали «здравствуйте, имярек». Круто, чо. Я написал здесь потому, что в «отзывах» писать бесполезно, так что извините. Вообще пополнить кредитку вроде можно, но снять деньги с неё можно только с комиссией это я сразу уточнил Мне лично никто не говорил, что нельзя. Вероятно, причина в том, что для разных каналов обслуживания предъявлялись различные требования к функционалу и накладывались соответствующие ограничения. Вот там про омниканальность в посте есть инфа, когда осуществят — границ не будет. А можно узнать какой мудак чудак, придумал вставить в ваше приложение антивирус, который знатно вешает систему, плюс сажает батарею, плюс жрет память… Мне вот лично не в кайф, что ваше приложение сидит в памяти и занимается какой-то фигней… На фоне этого ваши остальные плюсы меркнут. Безопасность банковского приложения — это важная штука, поэтому антивирус там есть. Но мы работаем над тем, чтобы он не мешал пользоваться приложением. Ждите хороших новостей. В устах «сбербанка» хорошие новости скорее пугают, нежели радуют. Главное, не вносите таких изменений, которые сделают невозможной эксплуатацию текущей или более старой версии, как уже пару раз было. Помните о клиентах. А если у меня есть свое антивирусное приложение? Может быть безопасность меня это мои проблемы? Моя безопасность — моя забота. Не банка дело, какие приложения установлены в моем телефоне, есть там рут или нет. Захочу поставить антивирус — сделаю это. И нечего мне навязывать услугу. Сберовский мобильный клиент — самый тормознутый из опробованных мною. Он запускается так долго, что я успеваю забыть, зачем его открывал. Ну и ущербный по функционалу, конечно… то нельзя, это тоже нельзя. Нормальные банки берут риски на себя, а не встраивают антивирусы. Сбер же в случае мошенничества шлёт клиентов подальше. Повесить перевод денег через смс всем подряд — это офигеть как безопасно! А для большей секьюрности — сделать это обязаловкой. Зато на рутованных устройствах — делать вид что приложение работает. А то, что на дешёвых телефонах после установки вашего комбайна с ждакузи и девочками, свободного места комар наплакал — это не ваши проблемы. Как бы вы решили проблему? С моей точки зрения чрезмерная забота о тупоголовом клиенте только вредит не-тупоголовым. В большинстве случаев, как мне кажется, достаточно 1 раз после установки хорошо, не один, а ТРИ показать пользователю предупреждение, что для безопасности управления его финансами следует использовать антивирус и не делать root. Так же уведомить, что Сбербанк не отвечает за последствия, если эти условия клиент не выполняет. И пусть пользователь думает, что ему надо больше. Оставьте пользователю свободу совершать ошибки, не идите по пути всяких ВсеПодрядНадзоров, готовых ради «безопасности» запретить даже лежать под одеялом неподвижно. С моей точки зрения тоже. Но бизнесу любому, а не только Сберу нужны клиенты которые приносят в том или ином виде деньги. И бизнесу не нужны расходы. Эти две тезиса задают основной тренд — консьюмеризация. Меня это жутко бесит. Например, в десктопных приложениях делают две кнопки, и ни шагу влево-вправо от сценария, который придумал кто-то. Но бизнес прагматичен, ориентируется на среднего клиента. Чем более массовый сервис, тем ближе к нижней границе. С ужасом жду времен, когда еще пара-тройка миллиардов новых пользователей получат доступ в интернет. Но две кнопки это самое прекрасное что может быть в интерфейсе. Лично меня каждый раз бесит когда сбербанк меняет свой интерфейс в банкоматах, и мне приходится угадывать что вот эта фигня есть влкадка как в смартфоне и надо переключиться а не листать ниже как раньше. Меня выбешивает yandex. Или современные мегаинтерфейсы допустим для выписки электронного больничного, где для самого частого действия надо выполнить достаточно странную и не очевидную последовательность операций которую и админ запоминает с пятого раза, что уж говорить про бедного врача. Поверьте, ненужная навороченность, неочевидность и изыточность современных интерфейсов более чем достала. Если бы можно было отключить антивирус, и разрешить сберу не возвращать мне деньги украденные через приложение я за… Но это так не работает приложение сейчас анально огорожено вообще от всего, но деньги, которые украли через него мошенники вам все равно не вернут. Насколько помню, именно эксплуатация и была причиной запрета рутованных зверьков. Я сейчас фантазирую А если владелец продукта все оценил, и выяснилось, что запрет установки на рутованные устройства выгоднее чем запрет переводов по смс? До недавнего времени получить из гугл-плея игрушку программу с дополнительным «довеском» было не так уж и сложно. Многие игры, при установке уведомляют о полном доступе к телефонии. И иди узнай, нафига? Интересно, модифицированный клиент, вылеченный от проверки рута, насколько популярен? Да, а еще, зачем каждый раз проверять, если я уже согласился на урезаный режим с работой только по шаблонам. Но нет, каждый запуск он тупит и проверяет, а вдруг у меня рут пропал. Дали бы опционально или «лайт» клиент без доп функций, только между своими и шаблоны. Запуск приложения занимает до 3 минут. Если я в роуминге то можно и 5 минут прождать. Плюс по отпечатку нельзя входить. Ну и главное если у вас Root доступ, то приложение урезает и без того скудный функционал. Azya Действительно есть, спасибо что подсказали. Только чтобы включить нужно в недры настроек пройти. Почему появилась необходимость создавать свое, когда существует, например, GraphQL, решающий те же проблемы? GraphQL решает другой класс проблем. В архитектуре, где он применим, клиентское и серверное приложение развиваются независимо друг от друга. В такой ситуации необходим абстрактный инструмент для получения данных — именно данных! Наша же основная задача состояла в том, чтобы передавать клиентскому приложению кроме данных достаточное количество сопутствующей мета-информации. Ну и, с одной стороны, не слишком перегрузить этим API, а с другой стороны — обеспечить нужную степень управляемости. Кроме этого GraphQL не даёт возможностей для оптимизации работы под нагрузкой, поскольку нельзя спрогнозировать, какие именно клиентское приложение будет формировать запросы. Напротив, в случае, когда API работает с ограниченным набором данных, можно, например, строить промежуточные слои кэширования и явно прогнозировать нагрузку на разные подсистемы. Спрогнозировать какие запросы будет формировать клиентское приложение можно. Вы декларируете какие данные нужны вашему приложению, и не важно какой механизм вы используете для получения данных. GraphQl запросы можно кешировать, более того часто запрещают делать произвольные запросы безопасность а передают только id запроса и аргументы необходимые для его выполнения. Для этого существуют утилиты — persistgraphql. По сути, мы передаём полную информацию о запросе, но кроме неё при таких ограничениях ничего передать нельзя. У меня простое предложение — оставить на андроид только lite приложение без антивируса и без расширенных функций. Это снизит стоимость разработки и повысит уровень лояльности пользователей. Причины называть не буду…. Ну вы не один андроид версией пользуетесь, меня и таких много лайт версия не устроила бы совсем. А вот антивирус фтопку, согласен. Короче для тупых хейтеров и для «манагеров» сбера… я хочу получить доступ ко всем функциям сбербанка онлайн без какой либо защиты готов подписать отдельный договор на бумаге без необходимости пользоваться ущербными ограничениями антивируса или рут доступа приложения. Пользуйтесь Сбербанк Онлайн. Никаких ограничений, ни антивирус, ни рут не помеха. Он не гнушается шманать все до чего дотянется, в то время как в личном кабинете грузяться левые скрипты. До чего у вас дотянулся веб-сайт? У меня только с этих сайтов грузятся скрипты stat. Упорно продолжают грузить метрику и гугл аналитику. Сейчас не знаю, но совсем недавно они проявляли завидную активность сканируя локальные порты. Коллеги, философский вопрос «где заканчивается безопасность и начинается вторжение» — очень интересный, но обсудить с сообществом мы хотели совсем не это. Мы будем очень рады вести дискуссию по теме, а фундаментальные вопросы вселенной можно обсудить отдельно на любой нетехнической площадке. Слив базы контактов с телефона пользователя это вторжение. Установка антивируска который шерстит все и вся это тоже вторжение. Не думали ли прикрутить аутентификацию по TOTP? Я бы с удовольствием съехал на нее с смс. А, может, добавил бы ее к смс, как третий фактор. Да, одна из наших команд работает над оптимизацией входа в приложения мобильное и веб , и TOTP тоже есть в списке кандидатов. Если сообществу это интересно, можем попросить коллег написать отдельную статью с результатами анализа. А описанный в статье подход уже используется в промышленной эксплуатации или только-только апробировали на пилотных функциях? В основном, технология пилотируется, но на первый результат уже можно посмотреть — это раздел «Регистрация на Госуслугах» в веб-версии Сбербанк Онлайн. АПИ, воркфлоу, фреймворки… Тем временем я — ИТ-специалист с многолетним стажем — не смог выполнить в Сбербанк-Онлайн элементарную задачу: сменить пароль для доступа в личный кабинет. Даже со второй попытки не смог!!! Не в том направлении работаете, ребята. Не надо плодить супер-мега-крутые фичи. Научитесь сначала безупречно реализовывать простые вещи. Правила валидации хранятся на сервере. В зависимости от того, как часто и с какой скоростью их требуется обновлять, можно держать правила в коде, в БД, в конфигах, во внешних системах и так далее. При этом правила клиентской валидации носят вспомогательный характер и могут значительно отличаться от правил серверной валидации. Поставили антивирус и сперли базу контактов, больше никогда не поставлю это гуано на свой телефон. Антивирус и безопасность, это как телеграм и терористы, ничего общего. Снес недавно приложение, когда выяснилось, что оно непрерывно генерирует трафик. Я понимаю, когда нужно проверить обновления раз в сутки или определить местоположение при запуске. Но оно что-то тихонько безостановочно качало даже если я его не запускал после перезагрузки. Дизигнеры наконец-то добрались и до сайта СБОЛа. Надеюсь доступ к старому интерфейсу не прикроют. Раньше оно тормозило на телефоне, теперь тормозит и на компе. Приветственный экран: 3 секунд смотрим как нас зовут и какое время суток, потом 5 секунд ждём, когда подтянутся данные в рыбу интерфейса. Часть ссылок вызывает полную перезагрузку интерфейса, часть нет. При этом при перезагрузке данные в рыбу могут не загрузиться совсем и ты не можешь ничего сделать. До шаблонов теперь приходится куда-то лезть. Бюджет на произвольный месяц уехал в никуда подозреваю что это потому что в старом интерфейсе им никто не пользовался. Ещё и статус выпуска карты в старом интерфейсе и в новом не совпадают совсем. Дата основания 12 ноября г. Локация Москва Россия Сайт sber. Сбербанк в Вконтакте vkontakte. Сбербанк Онлайн Управляйте своими финансами. Блог на Хабре. Встречи планирования разработки в пандемию, или Как устроить электро PIP 1. Самое читаемое. Ваш аккаунт Войти Регистрация. Настройка языка. О сайте. Служба поддержки. Мобильная версия. Интерфейс Русский. Сохранить настройки.

Удаленная работа со знанием английского

Платформа сервисов: как и зачем Сбер использует API

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

Сбербанк инвестиции api

Загрузить описание API

Сбербанк инвестиции api

Инвестиции в складскую недвижимость

Инвестиционный климат проекта

Sorry, you need to enable JavaScript to visit this website.

Сбербанк инвестиции api

Вкладывание денег в инвестиции отзывы

Фондовый рынок драгоценных металлов

API Сбербанк

Сбербанк инвестиции api

Рипл криптовалюта курс к рублю

Новые 'плюшки' в приложении Сбербанк Инвестор➡

Report Page