Интеграция с ПО UPOS через библиотеку PILOT_NT. 1.0 Платформа Win32.

- Титульная страница
- Группы
- Структуры данных

Операция "Оплата с выдачей наличных"
Расширенный функционал

При выполнении операции "Оплата с выдачей наличных" используется две суммы - общая сумма операции и сумма выдаваемых наличных средств. Значения обеих сумм передаются в копейках как 4-х байтные беззнаковые целые.

Ограничения для операции "Оплата с выдачей наличных":

- Общая сумма операции = сумма оплаты + сумма наличных
- сумма наличных должна быть меньше общей суммы операции "Оплата с выдачей наличных"
- сумма наличных должна быть больше 0
- сумма наличных передается в копейках и должна быть кратна значению, указанному в параметре "Номинал наименьшей купюры" раздела "Выдача наличных в ТСТ"

При наличии в терминале настройки «Возвращать промежуточный код ответа», операция «Оплата с выдачей наличных» может вернуть промежуточный код ошибки 4353 после предъявления карты. В случае несоответствия дополнительной суммы операции ограничениям, на кассу будет возвращен код ошибки ERR_CASHOUT_INVALID_AMOUNT. Операция проводится с вводом online pin, NO CVM лимит автоматически устанавливается равным 0. Операция доступна по картам Visa, Visa Electron и МИР Сбербанка и по картам Mastercard и Maestro вмех эмитентов. При предъявлении неподдерживаемой карты на кассу будет возвращен код ошибки ERR_OPER_DISABLED. Оплата со сдачей может быть отменена как полностью, так и частично. Частичная отмена возможна только в части оплаты, поэтому при частичной отмене, отменяемая сумма не должна превышать сумму покупки. Допускается ситуация, когда отмена выполняется на всю сумму оплаты.

Для выполнения на терминале операции "Оплата с выдачей наличных" необходимо использовать функцию card_authorize15 и код операции OP_PUR_CASHBACK. Общая сумма операции передается в поле auth_answer::Amount. Сумма наличных передается во входящем контексте операции в переменной PAR_AMOUNT_OTHER в виде целого числа.

Пример выполнения операции "Оплата с выдачей наличных":

CONTEXT_PTR ctx = NULL;
try
{
auth_answer14 argument;
DWORD amount = 10000;
DWORD amountOther = 50000;
DWORD amountFull = amount + amountOther;
DWORD result;
memset(&argument, 0, sizeof(argument));
argument.ans.TType = OP_PUR_CASHBACK;
argument.ans.Amount = amountFull;
//allocate context
CONTEXT_PTR ctx = ctxAlloc();
ctxSetInt(ctx, PAR_AMOUNT_OTHER, amountOther);
result = card_authorize15(NULL, &argument, NULL, ctx, 0);
std::cout << "Operation completed with code '" << result << "'!" << std::endl;
}
catch (...)
{
}
ctxFree(ctx);

Например:

См. также
  Docs\Для разработчиков ПО ККМ\examples\pilot_nt.dll\cpp\purchase-with-cashback