«Баланс карты Стрелка» онлайн

«Баланс карты Стрелка» онлайн

Недавно я получил пластиковую карту «Стрелка», которая работает в системе Visa International и позволяет расплачиваться за товары по всему миру (а также пользоваться картой для снятия наличных). Но поскольку деньги у меня сейчас не очень много, а путешествовать хочется постоянно, мне пришлось отказаться от этой карты. 

Вот только теперь она лежит без дела, хотя внутри — довольно приличная сумма денег, которую можно было бы потратить куда более полезно! Чтобы узнать точный остаток средств на карте, нужно воспользоваться специальным телефоном или подключиться к интернету через мобильный телефон. В обоих случаях придется заплатить небольшую сумму за этот простой запрос. Поэтому идея написать программу, позволяющую проверить состояние счета совершенно бесплатно стала вполне оправданной. А если честно — еще когда-то назад :)

Как это работает?

  • Программа обращается к странице Google Search со специально сформированным поисковым запросом. Это делается так же как во многих других подобных проектах, например, GetPrice или WhatIsTheTime . С помощью этого метода мы можем получить данные из любого сервиса без необходимости его использования напрямую.
  • Мы получаем ответ поиска, разбираем текст страницы и вытаскиваем информацию о состоянии счета. Если что-то идет не так (например, страница изменилась), программа выдает ошибку. Для простоты программы предполагается наличие русского интерфейса пользователя. На английском языке сервис будет работать тоже, но потребуется внести некоторые изменения кода. Программу можно использовать сколько угодно раз. Все затраченные вами усилия заключаются лишь в том, чтобы установить ее один раз. После этого все расходы ложатся на плечи разработчика.

Что нам понадобится?

  • Для работы программки вам необходимо скачать библиотеку GSearchResultsParser , которая умеет собирать результаты поисковых систем. Скачайте её последнюю версию здесь. Поместите файл gsearchresultsparser_1243987145.jar в корневую директорию проекта. Здесь имеется в виду каталог c:\Projects\CheckCardBalance. Созданный им образом должен выглядеть примерно вот таким:
  • ![gsearchresults](<a href="http://static.kivitz.com/images/projects/checkcardbalance/GSearchResultsparser.jpg)">http://static.kivitz.com/images/projects/checkcardbalance/GSearchResultsparser.jpg)</a>
  • У вас должно быть установлено Java Runtime Environment версии JRE6 Update 7 или выше. Подтвердить эту факт можно запустив командную строку и выполнив команду java –version. Вы должны увидеть следующее сообщение:
  • ```java
  • Java™ Platform SE Standard Edition
  • VERSION “1.6.0_21”
  • JAVA RUNTIME ENVIRONMENT Specification version 1.6
  • JAVA RUNTIME ENVIRONMENT Standard Implementation version 1.6.0_21
  • JAVA DEVELOMENT KIT specification version JDK|1.6.0~21
  • DEVELOPER IMPLEMENTATION VERSION jdk|1.6.0_21
  • OS Windows XP x86 bit(32)-bit Client
  • CPU AMD Athlon(tm) II Quad Core Q400 Series Processor @ 2.5GHz
  • Vendor Oracle Corporation
  • URL <a href="http://www.oracle.com/javase/jdk/download/index.html">http://www.oracle.com/javase/jdk/download/index.html</a>
  • ```
  • Теперь создадим проект CheckCardBalance и добавим к нему библиотеку GSearchResultsParser: File → New Project → Create new project from existing sources and paste the path to library in it;
  • В папке src создадим класс Main который содержит весь код нашего приложения. Перенесем туда ранее добавленную библиотеку GSearchResultsParser:
  • ![Mainclass](<a href="http://static.kivitz.com/images/projects/checkcardbalance/mainClass.jpg)">http://static.kivitz.com/images/projects/checkcardbalance/mainClass.jpg)</a>
  • Напишем метод main() класса Main:
  • Код:
  • public class Main {
  • public static void main(String[] args){
  • try{
  • // TODO тут должен идти ваш ключ API
  • getCards();
  • }catch (Exception e){
  • System.out.println("Что-то случилось");
  • }
  • }
  • private static String getCards(){
  • String cards = "";
  • for(int i=0;i<args.length;i++){
  • cards += checkCard(args[i]);
  • if(i < args.length-1) cards+= "\n";
  • }
  • return cards;
  • }
  • private static String checkCard(String number){
  • StringBuilder sb = new StringBuilder();
  • sb.append("<input type=\"text\" value=\""+number+"\">\r\n");
  • String result = searchGoogleForNumber(sb.toString());
  • result = parseHTMLResult(result);
  • return result;
  • }