Форум OlegON > Программы и оборудование для автоматизации торговли > Маркировка

Техническая реализация запрета продажи маркированных товаров : Маркировка

23.11.2024 6:35


24.01.2024 17:37
Цитата:
student да, они типа декларируют что все проверки не будут тормозить очередь на кассе и все должно уложиться в 1.5 сек
Так вот чего я давно уже и думаю - на кой, как говорится, ляд - мне разбираться с зависаниями curl, с этими таймаутскими параметрами и т.д.., ежели -

- всё-равно придётся выстраивать логику работы УС так, чтобы у кассира на РМК не было зависаний при сканировании КМ..
- когда очередь и много в чеке позиций - то ждать таймаут в 10 сек (или разбираться почему завис курл) - всё-равно смысла нет, и нужно позицию будет пропустить к продаже (подвергнув уже офф-лайн проверке на предмет запрета продажи)

Получается тогда следующая картина:

- если КМ проверку не прошёл в течение 1,5 сек (ну или кому как нравится "тормозить" свой РМК.. потому что - если пропал/завис интернет, и установлен таймаут в 30 сек - то онлайн-проверку каждой позиции кассир будет ждать 30 сек), причём - неважно по какой причине - curl завис, время ответа от ЦРПТ вышло, и т.д... - то этот КМ прекращает проверяться онлайн, и начинает проверяться уже оффлайн.

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

Согласен?

Правка: volk13, 24.01.2024 17:40
24.01.2024 17:48
Итог:
- клиент выставляет максимальное время онлайн проверки каждого КМ - самостоятельно (как ему нравится) - хоть 1,5 сек, хоть 30..
- каким образом мы это реализуем в ПО техничеcки (через параметры curl, через "костыли", через ручное прерывание) - без разницы, лишь бы клиент был доволен.
Все согласны?
;)
24.01.2024 17:54
Цитата:
volk13 заморачиваться с причинами (почему КМ не проверился онлайн в отведённые мною сроки) - смысла никакого нет.
теоретически да, практически это головняк бизнеса, который он изменить не может без нарушений
црпт описывает механизм при 418 и подобных ошибках в ответе, а вот что делать если ответа просто нет ? механизм оффлайна тоже не панацея
но это уже из серии про шерифа и индейцев :)
24.01.2024 18:06
Цитата:
student что делать если ответа просто нет ?
применять, например, мой костыль - когда не нужно дожидаться ответа от запроса (по всяким там параметрам таймаутов), а можно прервать всю эту "онлайн-трахомудию" по своему собственному таймауту ;)

ps. настроение у меня теперь гораздо улучшилось, после осознания всей этой ситуации...

Правка: volk13, 24.01.2024 18:10
24.01.2024 18:35
Цитата:
volk13 настроение у меня теперь гораздо улучшилось, после осознания всей этой ситуации
Маленький ОФФ-Топ... Ребята, поберегите нервы, нервные клетки не восстанавливаются(или восстанавливаются, но очень медленно - жизни может и не хватить )...
Поверьте, большинству!!!!! клиентов, и самое главное, проверяющим их органам - это все пох... Дай бог, что вообще маркировку продают, по кассам... Поверьте, у меня, есть клиенты, что вообще на все это "забили", и пох - никто их не штрафует(возможно, до поры-до времени, но сейчас так)
24.01.2024 18:43
Цитата:
MWWRuza Поверьте, большинству!!!!! клиентов, и самое главное, проверяющим их органам - это все пох...
Им то может и пох, а вот лично мне (как программисту) - не важна вот эта вся "внешняя оболочка" (пользователи, проверяющие)
Мне важно другое - собственное чувство удовлетворения, что я сделал всё так, как нужно, а уж как этим будут пользоваться - это уже - проблемы "индейцев" (как говорил уважаемый коллега student)..
24.01.2024 19:22
моя ремарка
Цитата:
что делать если ответа просто нет
относилась к тому что ответа реально нет, не важно по какой причине - таймаут или костыль или расположение фаз луны и прочее
Цитата:
volk13 а можно прервать всю эту "онлайн-трахомудию" по своему собственному таймауту ;)
а можно просто - не изобретать лисапед :) а разрулить и использовать таймауты внешней утили если ты все таки ее используешь (пользуйся тем что есть и не плоди сущностей), если все свое - родное без внешнего софта, то костыль в принципе не нужен - можно предусмотреть аварийный выход и не один для продолжения работы
еще раз подчеркну - у нас не отмечено не сработка таймаутов курла, как и его зависание при выполнении запросов
ты все таки включи логгирование у курла и посмотри что там пишется - там есть и временные отметки

Код:
19:17:22.621262 == Info:   Trying [::1]:8080...
19:17:22.622345 == Info: Connected to localhost (::1) port 8080
19:17:22.622401 => Send header, 209 bytes (0xd1)
0000: POST /xml?type=ChequeV4 HTTP/1.1
0022: Host: localhost:8080
0038: User-Agent: curl/8.4.0
0050: Accept: */*
005d: Content-Length: 1285
0073: Content-Type: multipart/form-data; boundary=--------------------
00b3: ----7crFvA0M4jenbBvq1ikVol
00cf: 
19:17:22.630093 => Send data, 1285 bytes (0x505)
0000: --------------------------7crFvA0M4jenbBvq1ikVol
0032: Content-Disposition: form-data; name="xml_file"; filename="s0031
0072: 0297 240124_191722.XML"
008b: Content-Type: application/xml
00aa: 
00ac: <?xml version="1.0" encoding="UTF-8"?><ns:Documents xmlns:c="htt
00ec: p://fsrar.ru/WEGAIS/Common" xmlns:ck="http://fsrar.ru/WEGAIS/Che
012c: queV4" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:
016c: pref="http://fsrar.ru/WEGAIS/ProductRef_v2" xmlns:xs="http://www
01ac: .w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSch
01ec: ema-instance">
01fc:  <ns:Owner>
0209:   <ns:FSRAR_ID>020000665213</ns:FSRAR_ID>
0234:  </ns:Owner>
0242:  <ns:Document>
0252:   <ns:ChequeV4>
0263:    <ck:Identity>{1C384487-0F82-439C-A709-93A14767CAF1}</ck:Ident
02a3: ity>
02a9:    <ck:Header>
02b9:     <ck:Date>2024-01-24T19:17:22</ck:Date>
02e5:     <ck:Kassa>9999078902007957</ck:Kassa>
0310:     <ck:Shift>31</ck:Shift>
032d:     <ck:Number>297</ck:Number>
034d:     <ck:Type>..............</ck:Type>
0374:    </ck:Header>
0385:    <ck:Content>
0396:     <ck:Catering>
03a9:      <ck:Barcode>22N00000XOKBM73CAEA2N0S80903004019602QXVAL2MX2E
03e9: PNVL4Y8XZ349NUKNKHT2W</ck:Barcode>
040d:      <ck:EAN>4603040012239</ck:EAN>
0432:      <ck:Price>60.10</ck:Price>
0453:      <ck:Volume>1000</ck:Volume>
0475:     </ck:Catering>
0489:    </ck:Content>
049b:   </ns:ChequeV4>
04ad:  </ns:Document>
04be: </ns:Documents>
04cf: 
04d1: --------------------------7crFvA0M4jenbBvq1ikVol--
19:17:22.630576 == Info: We are completely uploaded and fine
19:17:23.086339 <= Recv header, 15 bytes (0xf)
0000: HTTP/1.1 200 
19:17:23.086397 <= Recv header, 14 bytes (0xe)
0000: Vary: Origin
19:17:23.086423 <= Recv header, 37 bytes (0x25)
0000: Vary: Access-Control-Request-Method
19:17:23.086433 <= Recv header, 38 bytes (0x26)
0000: Vary: Access-Control-Request-Headers
19:17:23.086444 <= Recv header, 38 bytes (0x26)
0000: Content-Type: text/xml;charset=UTF-8
19:17:23.086462 <= Recv header, 28 bytes (0x1c)
0000: Transfer-Encoding: chunked
19:17:23.086472 <= Recv header, 37 bytes (0x25)
0000: Date: Wed, 24 Jan 2024 16:17:23 GMT
19:17:23.086481 <= Recv header, 2 bytes (0x2)
0000: 
19:17:23.188539 <= Recv data, 6 bytes (0x6)
0000: 1
0003: <
19:17:23.191243 <= Recv data, 330 bytes (0x14a)
0000: 143
0005: ?xml version="1.0" encoding="UTF-8" standalone="no"?><A><url>htt
0045: p://check.egais.ru?id=5f649af8-dd18-4acc-8606-f0eb5bf507dc&amp;d
0085: t=2401241917&amp;cn=020000665213</url><sign>2C7A3EEAD81F81F0B2B5
00c5: 592600E56FB0E821AAEE70D007D8826E78833CD11F5DAF012D71B2B9917E024D
0105: 34D5EC159B4C01B61105A5B8ECF140F0BD3C89073F97</sign><ver>2</ver><
0145: /A>
19:17:23.195825 <= Recv data, 5 bytes (0x5)
0000: 0
0003: 
19:17:23.195890 == Info: Connection #0 to host localhost left intact
и если не ошибаюсь, то лог можно расширить - просто попадалось упоминание - сам не разбирался
24.01.2024 19:28
Цитата:
volk13 Им то может и пох, а вот лично мне (как программисту)
Ну, я так и написал - "Маленький ОФФ-Топ..."... Мне, тоже не пох, я жо*у рву по другим участкам всего этого всего безобразия, в частности https://olegon.ru/showthread.php?t=38791, проблему касс я "полностью" скинул на Олега(student), помогая ему по мере своих возможностей... Как-то так, нельзя в одни руки "объять необъятное"...

Правка: MWWRuza, 24.01.2024 19:31
24.01.2024 19:38
Цитата:
student ты все таки включи логгирование у курла и посмотри что там пишется - там есть и временные отметки
да включал я это!.. тут уже сообщал про проблемы такого включения
;)

вот из последнего:
Цитата:
14:34:04.702000 == Info: Trying 91.230.251.193...
14:34:04.702000 == Info: TCP_NODELAY set
14:34:04.712000 == Info: Connected to markirovka.crpt.ru (91.230.251.193) port 443 (#0)
14:34:05.503000 == Info: ALPN, offering h2
14:34:05.503000 == Info: ALPN, offering http/1.1
14:34:05.503000 == Info: Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
14:34:05.634000 == Info: successfully set certificate verify locations:
14:34:05.634000 == Info: CAfile: Z:\1C\BASI1C\ALCO_ADM_TEST\SystemData\utils\curl\bin_crpt\ca-bundle.crt
CApath: none
14:34:05.644000 == Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
14:34:05.644000 => Send SSL data, 5 bytes (0x5)
0000: .....
14:34:05.644000 == Info: TLSv1.2 (OUT), TLS handshake, Client hello (1):
14:34:05.644000 => Send SSL data, 512 bytes (0x200)
0000: ........N..L.>.....P..-..;!....E..........0.,.(.$.............k.
0040: j.i.h.9.8.7.6.........2...*.&.......=.5.../.+.'.#.............g.
0080: @.?.>.3.2.1.0.........E.D.C.B.1.-.).%.......<./...A.............
00c0: ............3.........markirovka.crpt.ru........................
0100: ................... .....................................3t.....
0140: ....h2.http/1.1.................................................
0180: ................................................................
01c0: ................................................................
....
тут много всего...
...
0200: Id":"ebd58064-3f48-47d3-9606-eceee1089399","reqTimestamp":170609
0240: 6045591}
14:34:05.874000 == Info: Connection #0 to host markirovka.crpt.ru left intact
Но толку-то, если это - положительный результат..
А отрицательный результат как зафиксировать (вероятность его появления - < 1%) - я не знаю (см. ссылку на моё сообщение)

Да и ладно, ибо - уже выше определились, что неважно по какой причине виснет curl, важно другое - как в этом случае поступить программе..
;))
24.01.2024 19:43
Цитата:
volk13 - я не знаю
я писал ранее - формируй логи с меткой времени в имени файла - будет на каждый запрос своя трасса
Часовой пояс GMT +3, время: 06:35.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.