BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 ноя 2021, 21:02

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 24 июл 2019, 10:04 
Не в сети

Зарегистрирован: 15 июл 2015, 12:21
Сообщения: 48
Карма: 5
Добрый день!
При попытке напечатать чек на атол-онлайн выдает ошибку (на скриншоте).
Вывел в лог checkData:
Код:
07-24/09:32:47  INFO [http-nio-0.0.0.0-8080-exec-2] MatrixSimpleCheck - checkData: 1.11
112292
0
STRING
ООО "МАТРИКС"

CUSTOMEREMAIL
a@test.ru

ONLYELCHECK
TRUE

PAYMENTTYPE
1

CHECKTYPE
PAYMENT

CASHIERNAME
Онлайн

CUSTOMTAG
1105;1


07-24/09:32:47  INFO [http-nio-0.0.0.0-8080-exec-2] MatrixSimpleCheck - Lines: [[1.11,112292,0]@636866d2, [null,ООО "МАТРИКС",-1]@6633134a]
07-24/09:32:47  INFO [http-nio-0.0.0.0-8080-exec-2] MatrixSimpleCheck - plines: [1.11, 112292, 0, STRING, ООО "МАТРИКСНЕТ", , CUSTOMEREMAIL, test@test.ru, , ONLYELCHECK, TRUE, , PAYMENTTYPE, 1, , CHECKTYPE, PAYMENT, , CASHIERNAME, Онлайн, , CUSTOMTAG, 1105;1, ]



Конфиг cashcheck:

Код:
#
pt.9.fr=2
pt.9.pass=01
#pt.9.print=auto
################
fr.2.title=тест-онлайн-платежи
fr.2.fiscalizator=atolonlinev4

fr.2.addr=https://testonline.atol.ru/possystem/v4/
fr.2.groupcode=v4-online-atol-ru_xxxx
fr.2.login=v4-online-atol-ru
fr.2.pass=******

## 1117 Адрес электронной почты отправителя чека
fr.2.company.email=test@matrix.info
# 1018 ИНН пользователя
fr.2.company.inn=1234567890
## 1187 Место расчетов
fr.2.company.payment_address=https://v4.online.atol.ru
##


Скрипт формирования внешнего вида чека:
Код:
package ru.smartkom.bgbilling.cashcheck;

import java.math.BigDecimal;
import java.sql.Connection;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Set;

import org.apache.log4j.Logger;

import ru.bitel.common.DateTimeUtils;
//
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.module.server.bean.UserManager;
import ru.bitel.bgbilling.plugins.cashcheck.common.Payment;
import ru.bitel.bgbilling.plugins.cashcheck.common.Printer;
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker;
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.Check;
import ru.bitel.bgbilling.server.util.Setup;

/**
 * Какой-то простой формат чека для типичного ККМ.
 * @author dimon
 */
public class MatrixSimpleCheck
   extends CheckMaker
{
   private static final Logger logger = Logger.getLogger(MatrixSimpleCheck.class);
   private static final int NON_CASH_PAY = 1;  // Вид оплаты - безналичный
   private Payment payment;
   
   @Override
   public void init( Setup setup, Connection con, Connection conSlave )
      throws BGException
   {
   }
   
//   https://docs.bitel.ru/pages/viewpage.action?pageId=43386469
   @Override
   public void addPayment( Payment payment, Check check, Printer printer )
      throws BGException
   {
      this.payment = payment;
//      один раз должна присутствовать установка платежа addPayment( ), это будет "фискальная" строка,
//      которая собственно представляет собой продажу
      check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );  // #1020 ?

      check.addString( "ООО \"МАТРИКС\"" );  //Организация
      
      check.setDocumentId(payment.getId());  // Номер документа
//      check.addString(String.valueOf(payment.getId()));
      
//      LocalDate paymentDate = payment.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//      check.addString( DateTimeUtils.format( paymentDate, "dd.MM.yyyy HH:mm:ss" ));
//      check.addString( DateTimeUtils.format( paymentDate, "dd.MM.yyyy" ));
//      check.setDocumentDate(payment.getDate());  // Дата выдачи
      
//      check.addString( payment.getContractTitle() );
//      check.addString( payment.getContractComment() );  // #1227 - необязательно
      
      check.setCustomerEmail("a@test.ru");  // #1008 - Обязательно
//      check.addString("a@test.ru");
      
//      #1187 Место расчетов. Стр 19 -  в конфиге
      
//      check.addString("magazin@romashka.ru");
///////////////////////////////////////      
//      Только для агентских договоров.
//      check.setTag(1057, "another");    // Признак агента. Стр. 19-20. При этом обязательно #1171
//      check.setTag(1171, "+79123456789");  // Телефон поставщика
//      check.setTag(1222, "another");  // Признак агента. Стр. 26
      
      
      
//      check.setTag(1079, payment.getSumma().longValue());  // Цена за ед. предмета расчета
//      check.addString(payment.getSumma().toPlainString());
      
//      check.setTag(1023, 1L);  //Количество предметов расчета
////      check.addString("1");
      
//      check.setTag(1043, payment.getSumma().longValue());  // Стоимость предмета расчета
//      check.addString(payment.getSumma().toPlainString());
      
//      check.setTag(1214, "full_payment");  // Признак способа расчета
      
//      check.setTag(1212, "service");  // Признак предмета расчета
      
//      check.setTag(1199, "none");  // Ставка НДС: без НДС
      check.setTag(1105, payment.getSumma().longValue());  // Сумма расчета по чеку без НДС
//      check.setTag(1020, payment.getSumma().longValue());
      check.setTax(-1);
      
      check.setPaymentType(NON_CASH_PAY);  // Вид оплаты: безналичный. Стр 30.
//      check.setTag(1081, payment.getSumma().longValue());  // Сумма по чеку безналичными
      
      check.setOnlyElCheck(true);  // только электронный чек
      
      check.setCashierName("Онлайн");  // #1021. Кассир
   }

   @Override
   public void endCreate( Set<Integer> cids, Check check, Printer printer )
      throws BGException
   {
      logger.info("checkData: " + check.getCheckData());
      logger.info("Lines: " + check.getLines().toString());
      logger.info("plines: " + check.getPlines().toString());
      check.setTax(-1);
      check.setPaymentType(NON_CASH_PAY);
      check.setCustomerEmail("test@test");
   }

   @Override
   public void addPaymentRefund( Payment payment, Check check, Printer printer )
      throws BGException
   {
      check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );
   }

   @Override
   public void endCreateRefund( int cid, Check check, Printer printer )
      throws BGException
   {
      // check.setTax(1);
      // check.setPaymentType(1);
      // check.setCustomerEmail("test@test");
   }
   
   @Override
   public void addPaymentAuto(Payment payment, Check check, Printer printer)
      throws BGException
   {
      // обработка автопечатаемых платежей
      check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );
      check.setTax(-1);
      check.setPaymentType(NON_CASH_PAY);
      check.setCustomerEmail("test@test");
   }
}



Версия биллинга:
Код:
Информация о версии:

  Клиент: вер. 7.1.202 / 24.06.2019 18:11:12
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_211
  Сервер: вер. 7.1.1133 / 30.06.2019 16:52:14
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_102

  bill: вер. 7.1.301 / 25.06.2019 17:34:34
  card: вер. 7.1.199 / 12.02.2019 19:06:33
  dialup: вер. 7.1.305 / 06.02.2019 19:09:40
  drweb: вер. 7.1.64 / 06.02.2019 19:12:02
  email: вер. 7.1.166 / 06.02.2019 19:12:09
  inet: вер. 7.1.726 / 01.07.2019 15:38:20
  ipn: вер. 7.1.239 / 07.06.2019 15:51:18
  mps: вер. 7.1.187 / 22.05.2019 02:44:59
  npay: вер. 7.1.177 / 06.02.2019 19:12:46
  phone: вер. 7.1.255 / 18.03.2019 21:32:53
  rentsoft: вер. 7.1.44 / 17.05.2019 17:47:41
  reports: вер. 7.1.206 / 22.04.2019 20:11:57
  rscm: вер. 7.1.166 / 06.02.2019 19:13:32
  ru.bitel.bgbilling.plugins.cashcheck: вер. 7.1.137 / 30.06.2019 16:52:33
  ru.bitel.bgbilling.plugins.cladr: вер. 7.1.106 / 06.02.2019 19:11:59
  trayinfo: вер. 7.1.160 / 06.02.2019 19:13:49
  tv: вер. 7.1.228 / 28.06.2019 16:25:39
  voiceip: вер. 7.1.190 / 18.03.2019 21:32:15

Окружение:

  Клиент:
    os: Linux amd64, 4.4.0-154-generic
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_211
    jre home: /usr/lib/java/jdk1.8.0_211/jre
    memory (use/total/max): 52M/97M/860M
    default tz: 24.07.2019 09:54 OMST +0600 (Asia/Omsk)
    user tz: 24.07.2019 09:54 OMST +0600 (Asia/Omsk)
    locale: ru_RU
  Сервер:
    os: Linux amd64, 3.10.0-693.17.1.el7.x86_64
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_102
    jre home: /opt/java/jdk1.8.0_102/jre
    default tz: 24.07.2019 09:54 OMST +0600 (Asia/Omsk)
    memory (use/total/max): 158M/219M/2731M
    db time: master: 24.07.2019 09:54 +06
    db charset: connection: utf8(utf8_unicode_ci), database: utf8(utf8_unicode_ci)
    locale: ru_RU
    uptime: Started: 05.07.2019 07:36:26 Uptime: 19 d 02:17:36

Третьи стороны:

  Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved.
    http://p.yusukekamiyamane.com/
  Silk icon set. Copyright © Mark James. All rights reserved.
    http://www.famfamfam.com/lab/icons/silk/


В логах биллинга никаких записей нет. С помощью Wireshark - не знаю, откуда взять сессионный ключ.


Подскажите, куда копать?


Вложения:
Комментарий к файлу: ответ от атол-онлайн
badcheck_2019-07-23_12-42-02.png
badcheck_2019-07-23_12-42-02.png [ 26 КБ | Просмотров: 1406 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2019, 10:30 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
скачайте дистрибутив сервера биллинга ( ftp://ftp.bgbilling.ru/pub/bgbilling/ ) , возьмите оттуда lib/ext/json.jar и замените вашу в сервере биллинга, скорее всего у вас старая (проверьте размеры)

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2019, 10:33 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
перезагрузить не забудьте если либу поменяете, если поменяете на горячую - убедитесь что перезагружался сервер (в статусе или эбауте)

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2019, 13:01 
Не в сети

Зарегистрирован: 15 июл 2015, 12:21
Сообщения: 48
Карма: 5
Спасибо!
Удивительно быстро! Буду пробовать. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2019, 13:53 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
это всего лишь
наша
работа
:bow:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 июл 2019, 10:08 
Не в сети

Зарегистрирован: 15 июл 2015, 12:21
Сообщения: 48
Карма: 5
Спасибо!
Заменил json.jar , и все заработало корректно.
В логах (DEBUG) увидел, что со старой библиотекой вместо чисел отправлялись строки.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.052s | 35 Queries | GZIP : On ]