Clarion и терминал карт СБЕРА
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4194
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Clarion и терминал карт СБЕРА
Кстати, в кассовой программе сделали запрос печати чека. Для розницы. Если кассир выбирает не печатать, то не печатаются ни чек, ни банковской слип, ни чек егаис. Обоснование то, что сейчас введён мораторий на штрафы при невыдаче чека. Покупателя спрашивают, если говорит, что чек не нужен, то не печатают. Сколько продлится мораторий, неизвестно, а экономия должна быть заметная.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4194
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Clarion и терминал карт СБЕРА
В других магазинах аналогичная практика. Например, в Пятерочке. Правда, кассиров надо строить, некоторые ленятся спрашивать.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Электронный чек ! Прям и для Штриха умеете ? Научите !

За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4194
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Clarion и терминал карт СБЕРА
Для атолов, штрихов и пиритов такое можно. Для сп, насколько знаю, такой возможности нет, у них можно только при регистрации ккм задать режим без печати чека. На них не печатают банковские слипы и егаис.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Научите пожалуйста ! Лет пять передаём электронные чеки - но для Штриха не умеем.

Точнее там нет программного переключения - только по настройке драйвера.

Последний раз редактировалось Игорь Столяров 13 Июль 2022, 16:27, всего редактировалось 1 раз.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4194
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Clarion и терминал карт СБЕРА
Это лучше бы в другую тему разместить.
Для штриха надо перед открытием чека записать признак в таблицу (после печати он автоматически возвращается в стандартное положение). После открытия чека передать какой-нибудь адрес покупателя. Можно любой. Без него не пробовал.
Как-то так выглядит.
Запись в таблицу.
Для штриха надо перед открытием чека записать признак в таблицу (после печати он автоматически возвращается в стандартное положение). После открытия чека передать какой-нибудь адрес покупателя. Можно любой. Без него не пробовал.
Как-то так выглядит.
Код: Выделить всё
if SELF.FlagPrintNo=1 !не печатать следующий чек
if SELF.TablesWrite(1,17,1,7,0).
.
SELF.Contr{'password'} = SELF.Pswd
SELF.Contr{'CheckType'} = 0
SELF.Contr{'OpenCheck()'}
if SELF.FlagPrintNo=1 !не печатается чек, передаем эл.адрес/телефон покупателя
SELF.Contr{'password'} = SELF.Pswd
SELF.Contr{'TagType'} = 7
SELF.Contr{'TagNumber'} = 1008
SELF.Contr{'TagValueStr'}=SELF.KlientContact
SELF.Contr{'FNSendTag()'}
.
Код: Выделить всё
!===================================================================================
! Записать таблицу
!
FsKKM.TablesWrite FUNCTION (STRING pVal, BYTE pTable, BYTE pRow, BYTE pCol, BYTE pReg)
CODE
if SELF.Active=0
return(0)
end
if SELF.DriverType=0 !штрих
SELF.Contr{'password'} = SELF.PswdAdmin
SELF.Contr{'TableNumber'} = pTable
SELF.Contr{'RowNumber'} = pRow
SELF.Contr{'FieldNumber'} = pCol
if pReg=0
SELF.Contr{'ValueOfFieldString'}=pVal
else
SELF.Contr{'ValueOfFieldInteger'}=pVal
end
SELF.Contr{'WriteTable()'}
else !атол
SELF.Contr{'Table'} = pTable
SELF.Contr{'Row'} = pRow
SELF.Contr{'Field'} = pCol
if pReg=0 !строка
SELF.Contr{'FieldType'} = 1
else !число
SELF.Contr{'FieldType'} = 0
end
SELF.Contr{'Caption'}=pVal
SELF.Contr{'SetSettings()'}
end
if SELF.Contr{'RESULTCODE'}=0
return(1)
else
return(0)
end
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Ага ! Вот как они вывернулись ... Спасибо. Попробуем.

Та пусь будет - кому надо найдут поиском.

За теми кто отстал - не возвращаться. (С) Кодекс
- SergioRaguzini
- Старожил
- Сообщения: 221
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Как я понимаю - начиная с версии драйвера 4.12 (когда появилось понятие электронного чека),
есть специальный метод для передачи "телефона или e-mail покупателя для отправки чека":
Код: Выделить всё
If MyFRS.ClientEMail <> '' ! Телефон / E-mail для передачи чека через ОФД
MyFRS.Object{'Password'} = Clip(MyFRS.FRPass)
MyFRS.Object{'CustomerEmail'} = MyFRS.ClientEMail
MyFRS.Object{'FNSendCustomerEmail'}
end
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Привет всем !SergioRaguzini писал(а): ↑17 Март 2022, 20:50 3) Вызвать функцию NFun(4000).
4) Проанализировать код результата. Если он равен нулю, операция успешно выполнена.
Указанная выше схема прекрасно у нас работает долгие годы ... но есть один момент.
Если недостаточно грошей на карте для оплаты заявленной в Amount() суммы - код ошибки тоже 0.

Наверно нужно анализировать текст ответа из банка в Cheque() ? Но меня нет доступа к рабочему терминалу.

Если кто-нибудь занимался этим вопросом - подскажите пожалуйста, как мона поймать ситуацию с недостатком
денежных средств на карте при оплате через эквайринг Сбера с OLE драйвером.
Заранее Спасибо Вам за содействие !

За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4194
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Clarion и терминал карт СБЕРА
Уверены, что возвращается 0? Посмотрел, у меню только проверка на 0 стоит. Проблем никогда не возникало. Ситуации с недостатком денег точно были, все корректно отрабатывается.Игорь Столяров писал(а): ↑16 Август 2023, 9:29Привет всем !SergioRaguzini писал(а): ↑17 Март 2022, 20:50 3) Вызвать функцию NFun(4000).
4) Проанализировать код результата. Если он равен нулю, операция успешно выполнена.
Указанная выше схема прекрасно у нас работает долгие годы ... но есть один момент.
Если недостаточно грошей на карте для оплаты заявленной в Amount() суммы - код ошибки тоже 0.
Наверно нужно анализировать текст ответа из банка в Cheque() ? Но меня нет доступа к рабочему терминалу.
Если кто-нибудь занимался этим вопросом - подскажите пожалуйста, как мона поймать ситуацию с недостатком
денежных средств на карте при оплате через эквайринг Сбера с OLE драйвером.
Заранее Спасибо Вам за содействие !![]()
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Нет. Возможно проблема в другом.
Ситуацию описывает клиент, а я не могу её повторить из-за отсутствия действующего эквайринга Сбера.
Спасибо Вам за подтверждение правильности схемы работы с драйвером эквайринга. Будем разбираться.
За теми кто отстал - не возвращаться. (С) Кодекс
- SergioRaguzini
- Старожил
- Сообщения: 221
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
Clarion и терминал карт СБЕРА
Именно так!Игорь Столяров писал(а): ↑16 Август 2023, 9:29 Наверно нужно анализировать текст ответа из банка в Cheque() ?
Привет Всем!
Не важно, по какой причине (денег нет, истек срок действия карты, отказ от ввода pin-кода и т.д.) не прошел платеж Сбера, если <> 0, то выполнять операцию продажи в ФР нельзя, а вот коды ошибок для каждой проблемы разные.
Однако, есть ситуация, когда вроде бы ReturnCode = 0, но переменная (например некая GLO:Information) в которую возвращается слип:
GLO:Information = ?bc_Ole{'GParam("Cheque")'}
остается пустой и тогда также надо считать что была ошибка и в ФР данные не передавать
- Игорь Столяров
- Ветеран движения
- Сообщения: 6975
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 8 раз
- Поблагодарили: 30 раз
Clarion и терминал карт СБЕРА
Пардон, но я должен это спросить.SergioRaguzini писал(а): ↑16 Август 2023, 20:16 Однако, есть ситуация, когда вроде бы ReturnCode = 0, остается пустой и тогда также надо считать что была ошибка
Если какие-либо подтверждения написанному, кроме "вроде бы" и "также нужно считать" ?
По документации: транзакция по проводке платежа завершена при возврате кода ошибки = 0.
После этого много чего можно запросить, кроме слип-чека. И если есть проблема с получением
ответа и слип-чека (связь и т.д.) - это ведь не отменяет списание средств с карты ...
За теми кто отстал - не возвращаться. (С) Кодекс
- SergioRaguzini
- Старожил
- Сообщения: 221
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
Clarion и терминал карт СБЕРА
Да, действительно, если нет денег на карте, то код ошибки будет = 0 (хотя не факт что это всегда так - у сбера тоже в версиях библиотек иногда глюки бывают). Но одно точно - если платеж прошел (а нас интересует именно этот момент), то всегда будет слип (?bc_Ole{'GParam("Cheque")'} <> '') , мы в своей практике исходили именно из этого результата и никогда ошибок обработки не былоИгорь Столяров писал(а): ↑16 Август 2023, 20:33 По документации: транзакция по проводке платежа завершена при возврате кода ошибки = 0.
p.s. Извиняюсь, что сразу не ответил - был в отъезде, не смотрел форум