[ОТВЕТИТЬ]
Опции темы
24.11.2012 20:51  
whitewizard
Организация внешней комиссии для киберплата
Суть:
программа мониторит наличие файла в filein, преобразовывает его (меняет сумму и если надо добавляет в конец файла символы CR\LF) и записывает в fileout
все данные хранятся в ini файле.
пример ini файла:
-----------------------------------------------
[type]
BE;5.00
MT;5.00
ME;5.00
[cassa1]
filein=c:\cyber\$int__i$.041
fileout=\\192.168.1.1\cyber\$int__i$.041
[cassa2]
filein=c:\cyber\$int__i$.042
fileout=\\192.168.1.1\cyber\$int__i$.042
------------------------------------------------
пример входного файла:
------------------------------------------------
0001K9147777777 100.00 251112000600C MT041
------------------------------------------------
100.00 - сумма платежа
МТ - тип платежа
в данном случае выходной файл:
------------------------------------------------
0001K9147777777 95.00 251112000600C MT041
------------------------------------------------
Сумма платежа 71-82 символ в файле (дополняется пробелами справа)
тип платежа 123-124 символ
Если длина файла 198 байт, то он дополняется справа символами cr\lf до 200 байт
 
25.11.2012 00:52  
twix
Под какую систему?
 
25.11.2012 04:03  
whitewizard
Win32
 
25.11.2012 12:22  
twix
Напишу на .Net 2.0
Вместо инишника будет XML, как рекомендованный мелкомягкими формат хранения настроек приложения.

Хотело бы узнать что вот это такое:
Цитата:
[type]
BE;5.00
MT;5.00
ME;5.00
А, понял. Сумма, снимаемая с суммы оплаты для каждого из типов платежа...
Или процент? О_о

Да, и, насколько я понял, форум "скушал" задвоенные пробелы, и исходный файл выглядит так:
Код:
0001K9147777777                                                       100.00      251112000600C                           MT041
 
25.11.2012 12:52  
whitewizard
Цитата:
Сообщение от twix
Напишу на .Net 2.0
Вместо инишника будет XML, как рекомендованный мелкомягкими формат хранения настроек приложения.

Хотело бы узнать что вот это такое:


А, понял. Сумма, снимаемая с суммы оплаты для каждого из типов платежа...
Или процент? О_о

Да, и, насколько я понял, форум "скушал" задвоенные пробелы, и исходный файл выглядит так:
Код:
0001K9147777777                                                       100.00      251112000600C                           MT041
Процент это.

Код:
 0007K9147777777                                                     1.00        251112000600C                           MT041
 
25.11.2012 13:16  
whitewizard
Сам файл
Вложения
Тип файла: zip $int__i$.zip (211 байт, 84 просмотров)
 
25.11.2012 15:13  
twix
CRLF даёт два символа. Что делать, если длина файла на выходе не 198, а 127 символов, как в примере, что я сам сделал?

Может, просто добивать пробелами, а не переводом строки?

Да, и в том примере, что ты дал, сумма идет со смещением 70, а тип - 122
 
25.11.2012 15:39  
student
Цитата:
Сообщение от twix
CRLF даёт два символа. Что делать, если длина файла на выходе не 198, а 127 символов,
независимо от входа на выходе всегда 200 символов в пакете, добивай пробелами - правда раз уж начал делать м.б. сделать не файлами, а через post как сам киберплат рекомендует - типа файловый вариант уже устарел. . .

Ps
а еще сразу закладывай то, что брать надо будет в одном каталоге, а класть в другой - сервис киберплата очень шустро файлики хватает/прибивает
моя практика показала что в случае нагруженной сетки (ну любят заодно со всем видеонаблюдение толпой смотреть) надо готовить файлик в одном каталоге, копировать в каталог киберплата по сетке и после того как реально скопировался файлик - переименовывать с нужным расширением :)
 
25.11.2012 16:04  
whitewizard
Цитата:
Сообщение от twix
CRLF даёт два символа. Что делать, если длина файла на выходе не 198, а 127 символов, как в примере, что я сам сделал?

Может, просто добивать пробелами, а не переводом строки?

Да, и в том примере, что ты дал, сумма идет со смещением 70, а тип - 122
Посмотри тот файл, что я в предыдущем сообщении прислюнявил

Добавлено через 1 минуту 39 секунд
Цитата:
Сообщение от student
независимо от входа на выходе всегда 200 символов в пакете, добивай пробелами - правда раз уж начал делать м.б. сделать не файлами, а через post как сам киберплат рекомендует - типа файловый вариант уже устарел. . .

Ps
а еще сразу закладывай то, что брать надо будет в одном каталоге, а класть в другой - сервис киберплата очень шустро файлики хватает/прибивает
моя практика показала что в случае нагруженной сетки (ну любят заодно со всем видеонаблюдение толпой смотреть) надо готовить файлик в одном каталоге, копировать в каталог киберплата по сетке и после того как реально скопировался файлик - переименовывать с нужным расширением :)
Не. Там стоит atmpay, который сам отправляет киберплату как надо. Вот для того и сделано, что касса кидает в один каталог, а потом отправляется в каталог киберплата.
 
25.11.2012 16:08  
twix
Висит в трее. Не даёт запустить вторую копию от греха подальше. Проверяет наличие нужных файлов через заданный интервал. Добивает конец файла пробелами до итогового размера 200 байт. Обладает таким вот файлом настроек:

Код:
<?xml version="1.0" encoding="UTF-8" ?>
<CyberGuard>
<types>
	<!-- Обрабатываемые типы платежей, каждый со своим процентом вычета. -->
	<type name="BE" value="5.00" />
	<type name="MT" value="5.00" />
	<type name="ME" value="5.00" />
</types>
<sources>
	<!-- Обрабатываемые файлы. Теоретически, их количество не ограничено. -->
	<source name="cassa1" in="c:\cyber\$int__i$.001" out="c:\cyber\out\$int__i$.001" />
	<source name="cassa2" in="c:\cyber\$int__i$.002" out="c:\cyber\out\$int__i$.002" />
</sources>
<settings>
	<!-- Интервал проверки файлов-источников, мсек. -->
	<timer interval="1000" />
	<!-- Уровень вывода в лог: 0 - 'молчаливый' режим; 1 - только ошибки; 2 - вывод всех сообщений. -->
	<log verbose="0" />
	<!-- Смещение и длина поля суммы. -->
	<sum offset="70" length="12" />
	<!-- Смещение и длина поля типа платежа. -->
	<type offset="122" length="2" />
</settings>
</CyberGuard>
Количество типов платежей и источников пакетов может варьироваться, максимальное количество для обоих, вроде бы, не ограничено...


Вроде бы всё понятно.
Если надо, поделюсь исходниками. Они, конечно, без комментариев, но там ничего сложного нет.

CyberGuard.exe.zip (только исполняемый файл. конфиг и лог создаются автоматически)

Ах, ну да... Из требований: Компутер под управлением Windows XP и выше, .Net Framework 2.0
 
 


Опции темы



Часовой пояс GMT +3, время: 14:58.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.