package examples;

import tlv.Tag;
import tlv.TlvItem;
/*
 * Для операций отмены без предоставления карты в терминале должна быть включена настройка
 * Дополнительные опции -> Операции без карты по номеру чека или ссылке -> [выбрать операции]
 */

public class RefundWithoutCard {

    public static void main(String[] args) {
        device.Pinpad pp = new device.Pinpad();

        try {
            pp.ttkSession.connect();
            int amount = 61500;

            //pay
            ttk.commands.Command payment = new ttk.commands.Payment(pp, amount);
            ttk.Buffer paymentResult = payment.run();

            //refund
            ttk.commands.Refund refund = new ttk.commands.Refund(pp, amount);

            //find server rrn, insert it as client_rrn
            TlvItem rrn = TlvItem.findItem("TAG_TTK_SERVER_RRN", paymentResult.tagContainer);
            refund.setRrn(rrn.getValue());

            //add magic word to Track2
            refund.addToContext(new TlvItem(Tag.findTag("TAG_TTK_TRACK2"), "QSELECT"));

            ttk.Buffer refundResult = refund.run();

            pp.ttkSession.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
