оплата картой. вопросы, пожелания, баги

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
niichavo
Сообщения: 20
Зарегистрирован: 25 апр 2018, 13:55

оплата картой. вопросы, пожелания, баги

Сообщение niichavo » 02 июл 2019, 14:14

Здравствуйте!

1. бага. при оплате картой в составе регистрации фискального чека, возвращается структура RezultProcessing, в которой поле Amount не содержит копеек. т.е. возвращается сумма, у которой отсутствуют копейки. а если использовать эмулятор терминала - всё ок.
2. вопросы-пожелания. есть ли способ вернуть в ответе номер терминала и хэш от номера карты? если способа вернуть их нет, планируется ли реализовать?

спасибо.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: оплата картой. вопросы, пожелания, баги

Сообщение Audim » 02 июл 2019, 23:43

1. Какой протокл эквайринга?

2. Этих данных терминал нам не отдает :(

niichavo
Сообщения: 20
Зарегистрирован: 25 апр 2018, 13:55

Re: оплата картой. вопросы, пожелания, баги

Сообщение niichavo » 17 июл 2019, 11:18

Какой протокл эквайринга?
СБРФ: Эквайринговые терминалы

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: оплата картой. вопросы, пожелания, баги

Сообщение Audim » 18 июл 2019, 00:16

Сбер помоиму округляет сумму до рубля при оплате.
Вот и возвращает то что списано по карте.

niichavo
Сообщения: 20
Зарегистрирован: 25 апр 2018, 13:55

Re: оплата картой. вопросы, пожелания, баги

Сообщение niichavo » 19 сен 2019, 14:08

Этих данных терминал нам не отдает :(
Здравствуйте! Очень нужно получить хэш от номера карты, дату операции и передать департамент (при оплате через терминал сбербанка)! Прям аж очень-очень! :) И в документации сбера "\Docs\Для разработчиков ПО ККМ\pilot_nt.h" написано, что:

Код: Выделить всё

/** @struct auth_answer12
 *  @brief Расширение card_authorize11 возможностью указать номер отдела и задать/получить номер ссылки.
 */
struct auth_answer12 {
  auth_answer   ans;              /**< [in, out]  Основные параметры операции. См. ::auth_answer */
  char   AuthCode[MAX_AUTHCODE]; /**< [out] Код авторизации. 7 байт.              */
  char   CardID[CARD_ID_LEN];     /**< [out] Идентификатор карты. 25 байт. Для международных карт все символы, кроме первых 6 и последних 4, будут заменены символами ‘*’.*/
  int    ErrorCode;               /**< [out] Код ошибки.                                         */
  char   TransDate[TRANSDATE_LEN];/**< [out] Дата и время операции                               */
  int    TransNumber;             /**< [out] Номер операции за опер. день, см. номер на чеке     */
  int    SberOwnCard;             /**< [out] Флаг принадлежности карты Сбербанку                 */
  char   Hash[CARD_HASH_LEN];     /**< [in, out] хеш SHA1 от номера карты, в формате ASCII с нулевым байтом в конце. 40 байт.*/
  char   Track3[CARD_TRACK3_LEN]; /**< [out] третья дорожка карты. В PCI DSS решениях содержит данные с карты лояльности*/
  unsigned long RequestID;        /**< [in,out] Уникальный номер операции. Только PCI DSS решения.*/
  DWORD  Department;              /**< [in] Порядковый номер отдела от 0 до 14-ти, включительно.
                                            При установке номера отдела в 0xFFFFFFFF, номер отдела
                                            будет запрошен через интерфейс терминала после вставки карты.
                                            Если номер отдела будет указан вне настроенного диапазона,
                                            то терминал вернет код ошибки 4191. */
  char   RRN[MAX_REFNUM];         /**< [in,out] Номер ссылки операции, присвоенный хостом. Используется
                                                для операций возврат и множественной авторизации.
                                                Содержит уникальный 12-значный ссылочный номер.
                                                При предавторизации это поле является выходным
                                                (его заполняет библиотека pilot_nt.dll), а при
                                                завершении расчета – входным (значение должно 
                                                быть заполнено вызывающей программой; оно должно
                                                совпадать со значением, возвращенным при предавторизации).*/
};
Т.е., насколько я понимаю, возможность для получения хэша, даты и передачи департамента есть. Не могли бы вы поддержать эту возможность и возвращать их в каких-нибудь отдельных полях? Например в виде доп. полей к RezultProcessing? И предусмотреть передачу департамента при оплате картой в составе регистрации фискального чека? Спасибо.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: оплата картой. вопросы, пожелания, баги

Сообщение Audim » 22 сен 2019, 23:20

В kkmserver могут попасть только те изменения которые есть во всех устройствах.

1. Хеш карты есть только в сбере и только в некоторых операциях.
2. "auth_answer12" есть только в новом ПО сбербанка, которое есть далеко не у каждого.

Поэтому этого делать пока не будем. :)

Ответить