реклама на сайте
подробности

 
 
6 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Автоматическое определение баланса СИМ карточки, Выделение суммы из ответа на запрос USSD
Dmitrich
сообщение Dec 14 2011, 06:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



Ответы на запрос баланса по USSD у всех операторов, мало того, что разные, так они ещё и меняются время от времени.

Я у себя делаю так:

- ловлю в ответе слово "Баланс" ("Balace", "Balans","OCTATOK") и считываю первое число после него,
- если этих слов нет, считываю первое число и проверяю, что за ним есть буква 'р' или 'r', а в ответе нет слов "Ошибка", "Недоступен".

Но это срабатывает не всегда.

Например, из Казахстана прислали любопытный текст ответа (привожу по памяти): "На 12.11.2011 остаток на Вашем счету составляет...".
Естественно, моё устройство этот ответ не распознало.

Приглашаю поделится опытом - кто как распознаёт ответ оператора на запрос баланса по USSD.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Dec 14 2011, 06:57
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



А что если искать в тексте выражение число с точкой/запятой, после которой 2 цифры дальше пробел? Хотя если баланс например 10 р/$ нули после запятой/точки покажет?))

Вы этот баланс пользователю сообщаете? Может весь текст показывать?

Сообщение отредактировал KARLSON - Dec 14 2011, 06:58


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
Dmitrich
сообщение Dec 14 2011, 12:23
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



Цитата(KARLSON @ Dec 14 2011, 10:57) *
А что если искать в тексте выражение число с точкой/запятой, после которой 2 цифры дальше пробел? Хотя если баланс например 10 р/$ нули после запятой/точки покажет?))

Вы этот баланс пользователю сообщаете? Может весь текст показывать?

Нужно именно число. Во первых - для предупреждения о недопустимом снижении. А во вторых - для воспроизведения голосом.
Go to the top of the page
 
+Quote Post
sobr
сообщение Dec 14 2011, 13:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(Dmitrich @ Dec 14 2011, 13:31) *
Ответы на запрос баланса по USSD у всех операторов, мало того, что разные, так они ещё и меняются время от времени.

Я у себя делаю так:

- ловлю в ответе слово "Баланс" ("Balace", "Balans","OCTATOK") и считываю первое число после него,
- если этих слов нет, считываю первое число и проверяю, что за ним есть буква 'р' или 'r', а в ответе нет слов "Ошибка", "Недоступен".

Но это срабатывает не всегда.

Например, из Казахстана прислали любопытный текст ответа (привожу по памяти): "На 12.11.2011 остаток на Вашем счету составляет...".
Естественно, моё устройство этот ответ не распознало.

Приглашаю поделится опытом - кто как распознаёт ответ оператора на запрос баланса по USSD.
Не очень понял проблему...
Вы парсите слово"остаток", затем ищете цифры. Если за словом "остаток" не цифры а текст листаете сообщение до цифр.
Но если будет: "Остаток на 12.01.2011 на Вашем счету составляет..." нужен другой вариант. Надо подумать...
Go to the top of the page
 
+Quote Post
pau62
сообщение Dec 14 2011, 14:01
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897



Чем плохо найти 2 цифры, разделитель и еще 2 цифры? при том чтоб за ними на протяжении 3х символов не следовало одновременно точек, запятых и цифр. Предпочтительно чтоб перед этим было что-то типа "баланс"
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Dec 14 2011, 14:07
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Может быть искать название денег - рубли-гривны-тугрики, наверняка всегда будет после суммы.....


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
ssokol
сообщение Dec 14 2011, 15:12
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028



а я еще всегда запрашиваю ответ транслитом - некая независимость от языка, и заметил, что ответы лаконичнее , без лишних слов
Beeline - Vash balans 100.20 rub
Megafon - 100.93 14.12.11 10:56
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Dec 14 2011, 17:17
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Украинские сисопы все передают баланс только транслитом, без возможности переключения на кириллицу.
Я тупо искал первую цифру и далее atof
Вроде как работает в серии устройств (хотя это вспомогательная функция: светодиод мигает столько раз, сколько целых гривен на счету), пользователи могли ляпа и не заметить.
Пример из Казахстана озадачил, пока концепции нет sad.gif

Цитата(pau62 @ Dec 14 2011, 17:01) *
Чем плохо найти 2 цифры, разделитель и еще 2 цифры? при том чтоб за ними на протяжении 3х символов не следовало одновременно точек, запятых и цифр. Предпочтительно чтоб перед этим было что-то типа "баланс"


Наверное, именно так. Но слово "баланс" неуместно: например, МТС UA начинает прямо со значения баланса.

Сообщение отредактировал GeGeL - Dec 14 2011, 17:27
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Dec 14 2011, 18:00
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Вот что ляпают операторы в Нижегородской области:
ТЕЛЕ-2 "ОСТАТОК 82.96 р."
Мегафон "399.20руб.Далее реклама"
МТС "Баланс:679,67р,Лимит:650р"

Получается самый верный результат ищем число (например не более 6 цифр), затем разделитель, затем 2 цифры, после них цифр быть не должно.
Одно НО - не знаю как выглядят сообщения с целым балансом.

Вообще, если есть связь с компьютером, то лучше через регулярные выражения.

Сообщение отредактировал KARLSON - Dec 14 2011, 18:00


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
Velund
сообщение Dec 14 2011, 22:32
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Гм... А почему бы не _попросить_ у операторов нужный для м2м формат выдачи баланса? wink.gif По отдельному USSD запросу.

Что нибудь вообще без слов, с идентификатором валюты. В стиле 320,RUR,0,RUR,1,1,1,0

(320 руб на счету, кредитный лимит 0, GPRS доступен, CSD доступен, SMS доступен, голос недоступен)

Если будут хорошие идеи как сформатировать - обязуюсь довести эту просьбу до "правильных" людей по меньшей мере у одного оператора "тройки". wink.gif
Go to the top of the page
 
+Quote Post
Andreymai
сообщение Dec 15 2011, 04:12
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 137
Регистрация: 29-06-11
Пользователь №: 65 964



а интернет помощник/личный кабинет/сервис-гид не подходят?
Go to the top of the page
 
+Quote Post
Dmitrich
сообщение Dec 15 2011, 05:09
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



Цитата(Velund @ Dec 15 2011, 02:32) *
Гм... А почему бы не _попросить_ у операторов нужный для м2м формат выдачи баланса? wink.gif По отдельному USSD запросу.

Во первых, вряд ли услышат.
Во вторых, мне же неизвестно в каком месте, у какого оператора, и с каким тарифом будет работать устройство. Я уж упоминал Казахстан. Как туда его занесло?
Цитата
Что нибудь вообще без слов, с идентификатором валюты. В стиле 320,RUR,0,RUR,1,1,1,0

Было бы здорово... Но, видимо, не в этой жизни.

Цитата
Если будут хорошие идеи как сформатировать - обязуюсь довести эту просьбу до "правильных" людей по меньшей мере у одного оператора "тройки". wink.gif

Придумать форматирование - не проблема. Насчёт реализации сомневаюсь.
А было бы здорово. Ведь появились же у операторов тарифные планы, ориентированнные на м2м.
Та же "Телематика" у МТС. Приятные цены на трафик, разумная тарификация + термостойкая СИМка без зловредных счётчиков - позволяют решить кучу проблем.
Да к этому добавить бы ещё дополнительную информацию по USSD - было бы вообще здорово!
Ну вот, опять размечтался...


Цитата(CADiLO @ Dec 14 2011, 18:07) *
Может быть искать название денег - рубли-гривны-тугрики, наверняка всегда будет после суммы.....

Не подходит. Во первых, не всегда они есть. Во вторых - часто приходит ответ типа "Сервис недоступен", а за этим текстом идёт какая нибудь реклама с указанием цены.
Go to the top of the page
 
+Quote Post
=F8=
сообщение Dec 15 2011, 06:23
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Искал по сочетанию подходящее по формату число(десятичное с возможной одной '.' или ',') + имя денежной единицы с возможным пробелом между ними. Имя денежной единицы задает пользователь. Даже если после числа нет денежной единицы вместо нее можно ввести пустую строку, тогда просто поймаем первое подходящее число. Для большей определенности можно добавить слово перед числом, например ballans, тоже задаваемое пользователем.
Т.е. ищем строку (число + [" "] + "денежная единица") или ("слово" + " " + число + [" "] + "денежная единица").
Go to the top of the page
 
+Quote Post
ilya_nn
сообщение Dec 15 2011, 07:54
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-05-09
Пользователь №: 49 051



Цитата(Dmitrich @ Dec 14 2011, 10:31) *
Ответы на запрос баланса по USSD у всех операторов, мало того, что разные, так они ещё и меняются время от времени.

Я у себя делаю так:

- ловлю в ответе слово "Баланс" ("Balace", "Balans","OCTATOK") и считываю первое число после него,
- если этих слов нет, считываю первое число и проверяю, что за ним есть буква 'р' или 'r', а в ответе нет слов "Ошибка", "Недоступен".

Но это срабатывает не всегда.

Например, из Казахстана прислали любопытный текст ответа (привожу по памяти): "На 12.11.2011 остаток на Вашем счету составляет...".
Естественно, моё устройство этот ответ не распознало.

Приглашаю поделится опытом - кто как распознаёт ответ оператора на запрос баланса по USSD.


Из своего опыта - 100% достоверного результата получить не удастся: ответы операторов не формализованы, положение баланса в строке может быть различным, денежные единицы обозначаются по разному, дополнительно к значению баланса может быть реклама типа "получите 25 р на ваш счет". Остановился на том, что отдаю целиком результат запроса пользователю в виде "как есть".
Go to the top of the page
 
+Quote Post
=F8=
сообщение Dec 15 2011, 08:11
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(ilya_nn @ Dec 15 2011, 11:54) *
Из своего опыта - 100% достоверного результата получить не удастся: ответы операторов не формализованы, положение баланса в строке может быть различным, денежные единицы обозначаются по разному, дополнительно к значению баланса может быть реклама типа "получите 25 р на ваш счет".

Но у одного оператора ответ всегда одинаков, по крайней мере ключевые места меняется не часто. Поэтому надо просто дать возможность пользователю задавать маску.
Цитата
Остановился на том, что отдаю целиком результат запроса пользователю в виде "как есть".

Это хорошо если стоит задача по запросу пользователя передать ему ответ. Но часто задача стоит по другому - автоматически контролировать состояние счета и отправить сообщение если сумма на счету меньше заданной и в этом случае без парсинга ответа не обойтись.
Go to the top of the page
 
+Quote Post

6 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016