Пример #1
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("InputResult");
            cw.WriteData("docnr", DocumentNumber);
            cw.WriteData("input", Input);
            cw.WriteData("source", InputSource.ToString());
            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #2
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("PrintReceipt");
            cw.WriteData("id", ReceiptId);
            cw.WriteData("docnr", DocumentNumber);
            cw.WriteData("receipttext", ReceiptText);
            cw.WriteData("flags", Flags.ToString());
            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #3
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("DocClosed");
            cw.WriteData("docnr", DocumentNumber);

            if (!string.IsNullOrEmpty(AuthorizationId))
                cw.WriteData("authid", AuthorizationId);

            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #4
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("Login");
            cw.WriteData("time", Time.ToString("yyyy-MM-dd HH:mm:ss"));
            cw.WriteData("idletext", IdleText);

            string flags = Flags.ToString();
            if (!string.IsNullOrEmpty(flags))
                cw.WriteData("flags", flags);

            cw.WriteData("lang", Lang);
            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #5
0
        public async Task<ITransactionResponse> ReversalAsync(ReversalRequest reversalRequest)
        {
            Ensure.NotNull(reversalRequest.TransactionId, nameof(reversalRequest.TransactionId));

            TransactionState transactionState = GetTransactionState(reversalRequest.TransactionId, false);
            if (transactionState == null)
                throw new AsyncPosException(string.Concat(Language.Get("no_trans_error", _languageCode), $" {nameof(reversalRequest.TransactionId)}: ", reversalRequest.TransactionId));

            #region Fire event

            Format0Writer writer = new Format0Writer();
            writer.WriteStart("DocClosed");
            writer.WriteData("DocNr", reversalRequest.TransactionId);
            writer.WriteEnd();

            _pedEvents.FireEvent(AsyncPosEventTypes.DocClosed.ToString(), new Format0Reader(writer.ToArray()));

            #endregion

            switch (transactionState.State)
            {
                case TransactionStates.Reversed:
                case TransactionStates.NotStarted:
                case TransactionStates.Declined:
                    transactionState.State = TransactionStates.Reversed;
                    break;

                case TransactionStates.Confirming:
                case TransactionStates.Confirmed:
                    throw new AsyncPosException(Language.Get("cannot_reverse_trans_error", transactionState.Language));

                default:
                    {
                        await ProcessReversal(transactionState);
                        break;
                    }
            }

            ReversalResponse response = new ReversalResponse
            {
                TransactionId = reversalRequest.TransactionId,
                Result = transactionState.State == TransactionStates.Reversed ? ResponseResults.Ok : ResponseResults.Error,
                Text = transactionState.InformationText,
            };

            FillReceipts(transactionState, response, true);

            return response;
        }
Пример #6
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart(PreAuthorization ? "PreAuthorize" : "Authorize");
            cw.WriteData("amount", Amount.ToString(CultureInfo.InvariantCulture));
            if (Cash > 0) cw.WriteData("cash", Cash.ToString(CultureInfo.InvariantCulture));
            cw.WriteData("currency", Currency.ToString(CultureInfo.InvariantCulture));
            cw.WriteData("docnr", DocumentNumber);
            cw.WriteData("time", Time.ToString("yyyy-MM-dd HH:mm:ss"));
            cw.WriteData("lang", Language);
            cw.WriteData("token", CardToken);
            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #7
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("DisplayText");
            cw.WriteData("txt", Text);
            cw.WriteData("reason", ((int)Reason).ToString(CultureInfo.InvariantCulture));

            string flags = Flags.ToString();
            if (!string.IsNullOrEmpty(flags))
                cw.WriteData("flags", flags);

            if (Beep != BeepTypes.NoBeep)
                cw.WriteData("beep", ((int)Beep).ToString(CultureInfo.InvariantCulture));

            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #8
0
        public byte[] Serialize(byte[] apak, string posId)
        {
            Format0Writer cw = new Format0Writer();
            cw.WriteStart("AuthorizationResult");
            if (!string.IsNullOrEmpty(AuthorizationId)) cw.WriteData("id", AuthorizationId);
            cw.WriteData("docnr", DocumentNumber);
            cw.WriteData("result", Approved ? "OK" : "ERROR");
            cw.WriteData("amount", Amount.ToString(CultureInfo.InvariantCulture));
            cw.WriteData("txt", Text);
            if (!string.IsNullOrEmpty(AuthorizationCode)) cw.WriteData("authcode", AuthorizationCode);
            if (!string.IsNullOrEmpty(Rrn)) cw.WriteData("rrn", Rrn);
            if (!string.IsNullOrEmpty(Stan)) cw.WriteData("stan", Stan);
            if (!string.IsNullOrEmpty(CardType)) cw.WriteData("cardtype", CardType);
            cw.WriteEnd();

            byte[] message = AsyncPosPacket.PrependHeader(0x00, AsyncPosPacket.GenRandomId(8), posId, cw.ToArray());
            AsyncPosPacket.SetSignature(message, 0, apak);

            return message;
        }
Пример #9
0
 public static string DumpF0(Format0Writer w)
 {
     return DumpF0(w.ToArray());
 }