Уведомления

Группа в Telegram: @pythonsu

#1 Март 23, 2012 01:28:15

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Кто знает где можно найти информацию о формате данных линейного штрих-кода для платежных терминалов СберБанка. Насколько я понял, используется стандарт Code 128. Но какие данные и в какой последовательности им упаковываются в сам штрих-код.

Задача: необходимо сформировать штрих-код для квитанции на оплату. В идеале - клиент идет с этой квитанцией к терминалу и оплачивает полностью самостоятельно.



Отредактировано (Март 23, 2012 01:28:58)

Офлайн

#2 Март 23, 2012 05:28:19

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

хех, как раз занимаюсь разработкой проги для матричного принтера, со штрих кодами
про code128 читай в ГОСТ 30743-2001

Там сначала подается управляющий код потом данные кодируемые
Была еще инфа, но чет среди хлама на рабочем столе не могу найти

Офлайн

#3 Март 25, 2012 06:43:48

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Вроде скинули инфу, данные упаковываются так:

{ИНН}L{Идентификатор платежа}S{сумма*100}

Если есть алгоритм упаковки данных в code128 на Python, буду благодарен за его код :)



Отредактировано Psixo (Март 25, 2012 06:44:22)

Офлайн

#4 Март 25, 2012 08:01:19

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

А какой тут алгоритм? береш файл квитанции, открываешь, вставляешь туда код штрих-кода + данные ({ИНН}L{Идентификатор платежа}S{сумма*100}) и все. Насчет кода штрих-кода смотри в документации принтера, т.к. я думаю не на любом принтере одинаковые коды.

Офлайн

#5 Март 25, 2012 09:51:35

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Piton23
А какой тут алгоритм? береш файл квитанции, открываешь, вставляешь туда код штрих-кода + данные ({ИНН}L{Идентификатор платежа}S{сумма*100}) и все. Насчет кода штрих-кода смотри в документации принтера, т.к. я думаю не на любом принтере одинаковые коды.

У меня задача следующая - сформировать штрихкод для квитанциия, чтобы пользователь мог подойти к терминалу оплаты и подставив штрих-код для считывания ввести все данные для оплаты автоматически.

http://tradepilot.ru/goods-marks/code128

Есть макет квитанции который будет распечатываться.
В макете есть область для штрих-кода.
Есть шрифт штрих-кода: http://code128.narod.ru/
По соответствующему алгоритму исходная строка кодируется в строку code128 которую можно будет вывести с помощью указанного щрифта.

Вроде как-то так.

Еще веселая задачка, сделать тоже самое но в html макете div-ами.



Офлайн

#6 Март 25, 2012 10:48:03

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Забыл уточнить (т.к. раньше думал что в банках априори матричники стоят). У вас матричный принтер, если да то какой режим вывода графический или текстовый?

Офлайн

#7 Март 25, 2012 10:55:15

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Здесь не в принтере дело.
Обычная квитанция которая будет печататься лазерником на А4 :) Формировать штрих-код будет за счет шрифта и строки code128.

Вот,кстати,алгоритм такого преобразования (строка -> код128) под 1С: http://www.kb.mista.ru/article.php?id=404 но он вроде несколько кривой.

ЗЫ.: это не для банка, коммерческая фирма занимающаяся оказанием определенного рода услуг.



Отредактировано Psixo (Март 25, 2012 10:57:02)

Офлайн

#8 Март 25, 2012 11:51:56

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

В алгоритме указаном по ссылке используются 3 набора символов codeA codeB и codeC, по мне так извращение использовать несколько наборов в одном штрих коде. У меня например штрих код представляет инфу об оплате за комунальные услуги жкх, т.е. есть id жильца, сколько платить, код управляющей компании и т.п. Т.е. поскольку только числовая информация то используется только codeC. Если б требовалось использовать символы A-Za-z то использовал бы codeB. А поскольку в штрих коде зашито какой набор используется (A,B или C) то считыватель считает без проблем (даже если они будут чередоваться).

К чему это я. Я делал следующим образом. Есть база. При запросе печати квитанции для Иванова, брались данные вставлялись в последовательность штрих-кода, рассчитывалась контрольная сумма. Впереди шла инфа (управляющие коды) обозначающая что идет печать штрих-кода. и все. Вся эта последовательность вставлялась в нужном месте шаблона и выталкивалась принтеру. НО эти все махинации я делал для матричного принтера в текстовом режиме. Т.е. Если лазерник у вас, то картинка формируется раньше непосредственой печати штрих-кода. А вот как она формируется я не знаю. О драйвере печати надо наверное почитать.

Алгоритмы вычисления контрольной суммы есть, с этим у вас вроде проблем не должно быть. Вот пример могу свой привести. К примеру нужно запрогать код 45 65 78. В итоге получаем последовательность

27 16 66 9 67 45 65 78 102

где 27 16 66 не помню че обозначают (док. смотреть надо). 9 - типа количество данных (+1 для stop), 67 обозначается последовательность codeC, 65 - codeA, 66 - codeB, 102 - проверочный код (вроде б не ошибся с его вычислением)

Офлайн

#9 Март 30, 2012 08:01:39

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

Piton23, с алгоритмом вроде бы сложностей не возникло, вычисление контрольной суммы хорошо описали здесь: http://tradepilot.ru/goods-marks/code128

В алгоритме указаном по ссылке 1С используются 3 набора символов codeA codeB и codeC, по мне так извращение использовать несколько наборов в одном штрих коде
Вот здесь с вами согласны разработчики ридеров штрих-кода, которые установлены в аппаратах СберБанка :) долго понять не мог в чем проблема моих штрих-кодов, оказалось всё дело в смене подсистем ввода внутри штрих-кода,они не воспринимались.
Переписал только под Code128A, данные считались корректно.

По поводу печати,печатал на разных лазерниках,если штрих-код составлен верно - аппарат распознает независимо от принтера.
Кстати,сам штрих формировал не только шрифтом, но и для html документа div-ами.

Остался 1 проблемный момент - формат данных штрихкода СберБанка.
ИННLИдентификатор платежаSсумма*100

ИНН читается без проблем, а вот индентификатор платежа слипается с суммой,например так:
12346450005S350000 <—- такое значение воспринимается как ИдПлатежа, хотя это Ид+Сумма
Надо где-то найти информацию о том,как в штрихкоде СберБанка разделяют номер платежа и его сумму.



Отредактировано Psixo (Март 30, 2012 08:03:51)

Офлайн

#10 Март 30, 2012 08:58:55

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

Штрих-коды в квитанциях СберБанка

мм как они могут слипаться, вы просто определите количество разрядов для каждой состовляющей. К примеру на индитификатор 4 позиции. И если айдишник выйдет 25 к примеру, то в последовательность надо вставить 0025 а не 25. А дальше уж дело техники. На считывающем устройстве просто определить что от сих до сих считать сумму. И т.п.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version