суббота, 31 октября 2009 г.

Мобильный банк, Парсинг SMS уведомлений от Сбербанка, осуществление платежей.

Представляю свою первую программу под android, впрочем, под java тоже первая.
Название: MobileBank
Текущая версия: 1.1.2 (Free) от 31/10/09

Программа «Мобильный банк» предназначена для управления и контроля счета банковской карты в режиме SMS сообщений. Возможности программы:
  • оперативное получение на свой мобильный телефон уведомлений об операциях по карте;
  • осуществление платежей со счета карты без заявки в банк в пользу некоторых организаций (оплата мобильного телефона, Интернета, коммунальных платежей и т.п.)
  • получение по запросу информации о лимите доступных средств, истории операций, блокировка/ разблокировка услуг мобильного банка, блокировка/ разблокировка карты

Описание:
«Платежи» - шаблоны платежей для быстрой оплаты (по длительному нажатию)
«Журнал» - список разобранных SMS уведомлений об операциях по карте
«Карточка» - список возможных операций по карте (запрос баланса, блокировка и т.п.)
«Лог SMS» - список всех входящих/исходящих SMS сообщений т.к. во входящих, например, не все сообщения это осуществление платежа, могут быть и информационные сообщения.
Так же есть виджет на рабочий стол, который показывает остаток денежных средств на карте и данные последней операции.

Начальные настройки описаны в пункте меню «Информация».

В момент получения SMS от банка производится парсинг:
  • сообщение всегда записывается в лог sms;
  • если требуется подтверждение от пользователя (отправить доп. код на блокировку карты или подтвердить платеж) создается уведомление, по нажатию на которое можно быстро отправить sms-подтверждение;
  • если sms сообщение распознается как операция по карте (приход/расход) оно попадает в журнал операций, проигрывается мелодия, обновляется виджет.

Замечания:
  • если для мелодий установлено «Мелодия по умолчанию» - будет проигрываться встроенный в программу звук, а не мелодия по умолчанию установленная для телефона.
  • пароль на вход проверяется один раз при запуске программы (сделано специально, чтобы постоянно не мешал, например, при скрытии текущей активити или смене ориентации экрана).
  • Если входящее SMS идентифицировано как расход по карте и остаток (после операции) меньше чем должно быть - добавляется еще одна корректирующая запись в журнал операций «% по операции». Удобно, например, смотреть сумму списанных процентов, если ден. средства снимаются через банкомат другого банка.
    Пример:
    - было зафиксировано до получения уведомления : остаток средств 1000 руб.
    - поступает уведомление: списание 100 руб, остаток 810 руб.
    - автоматически добавляется запись - 90 руб, «% по операции», остаток 810 руб.
    Так же дополнительная запись будет добавлена, если SMS о последних операциях по каким либо причинам не были получены (телефон был выключен и т.п.), в дальнейшем планируется предоставить пользователю для таких операций устанавливать вид операции/описание/установку категории.

Планируется добавить:
  • сохранение в момент получения данных SMS текущего местоположения по данным сотового оператора, конвертация по требованию пользователя в ГЕО (широта/долгота) – отображение на карте.
  • установка категории для записи в журнале операций, отчеты (с группировкой по категориям, виду движения – приход/расход)
  • запланированные и периодические расходы (напоминание через уведомление или запись в календарь)

Программа писалась в первую очередь под себя, поэтому и при разработке отталкивался от того, какой функционал нужен мне в первую очередь. Программу не следует воспринимать как персональный менеджер бюджета или что-то подобное. В первую очередь это «Менеджер операций по банковской карте».
Пока реализована работа только с одной банковской картой и только от Сбербанка, паттерны разбора SMS в принципе можно править – они в отдельном xml файле.

Скриншоты:

 



Обсуждение и ссылка на программу на форуме.