Касса самообслуживания

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
festoshar
Сообщения: 23
Зарегистрирован: 28 дек 2017, 03:27

Касса самообслуживания

Сообщение festoshar » 17 июн 2023, 18:15

Кто нибудь делал организацию кассы самообслуживания? Фискальный чек необходимо печатать только после положительной оплаты по эквайрингу. Как понять что оплата прошла у клиента?

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

Re: Касса самообслуживания

Сообщение Audim » 19 июн 2023, 14:08

Посылайте отдельную команду на эквайринг.
В ответе будет статус выполнения операции.

И только потом команда на чек (не забудьте там запретить "эквайринг от чека")

festoshar
Сообщения: 23
Зарегистрирован: 28 дек 2017, 03:27

Re: Касса самообслуживания

Сообщение festoshar » 06 сен 2023, 22:46

Напишите пожалуйста, как все таки получить ответ статус выполнения команды.

К примеру я отправил сумму в терминал:

function PayByPaymentCard(NumDevice) {
var Data = {
Command: "PayByPaymentCard",
InnKkm: "",
NumDevice: NumDevice,
Amount: 100,
IdCommand: guid() //Нужно ли указывать Id команды или можно так оставить?
};
ExecuteCommand(Data);
}

PayByPaymentCard(2);

Я так понимаю, что нужно сразу кидать запрос:

function GetRezult(IdCommand) {
var Data = {
Command: "GetRezult",
IdCommand: IdCommand,
};
ExecuteCommand(Data, GetRezult, null, null, false);
};

GetRezult(); //Нужно ли указывать Id команды или можно так оставить?

Клиент оплатил, какой синтаксис , чтобы понять статус оплаты.
В моем понимании сделать if (status=='OK') , то выполняем действия дальше, else запрет;

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

Re: Касса самообслуживания

Сообщение Audim » 07 сен 2023, 19:07

Все правильно, команда GetRezult
В поле IdCommand записываете Id команду - результат которой нужно получить.
Результаты хранятся не продолжительно время после команды (до часу когда много чеков)

festoshar
Сообщения: 23
Зарегистрирован: 28 дек 2017, 03:27

Re: Касса самообслуживания

Сообщение festoshar » 03 окт 2023, 15:59

Разобрался пишу, может кому пригодится на php:

// Функция вызываемая после обработки команды - обработка возвращаемых данных
function ExecuteSuccess(Rezult, textStatus, jqXHR) {
...
//Успешная оплата на терминале
if (Rezult.Status == 0 && Rezult.Command == "PayByPaymentCard") {
{
function getOutputok() {
$.ajax({
method: "POST",
url:"ваш файл.php",
data: {sum_KKT_ekv: Rezult.Amount},
complete: function (response) {$("#result_form_client").html(response.responseText);},
error: function () {$("#result_form_client").html("Ошибка!");}
}); return false;}
}
getOutputok();
}

//Отмена оплаты на терминале
if (Rezult.Error != undefined && Rezult.Error != "" && Rezult.Command == "PayByPaymentCard") {
{
function getOutputEr() {
$.ajax({
url:"ваш файл.php",
complete: function (response) {$("#result_form_client").html(response.responseText);},
error: function () {$("#result_form_client").html("Ошибка!");}
}); return false;}
}
getOutputEr();
}

...

Ответить