コード例 #1
0
ファイル: TitpTests.cs プロジェクト: ncichris/iso8583net
        public void CardNumberIsEncodedCorrectly(string cardNumber)
        {
            var mPackager = new ISOMessagePackager(logger, "titp.xml"); // initialize from default visa packager that is embeded as a resource in the library
            var m         = new ISOMessage(logger, mPackager);

            m.Set(0, "0100");
            m.Set(2, cardNumber);
            m.Set(3, "000000");
            var packed = m.Pack();

            m.UnPack(packed);
            var hexBytes = ISOUtils.Bytes2Hex(packed);
            //                         header(TPDU)   msgtype  bitmap
            string expectedHexBytes = "0000000000" + "0100" + "6000000000000000";

            if (cardNumber.Length % 2 != 0)
            {
                expectedHexBytes += cardNumber.Length.ToString().PadLeft(2, '0') + cardNumber + "F" + "000000";
            }
            else
            {
                expectedHexBytes += cardNumber.Length.ToString().PadLeft(2, '0') + cardNumber + "000000";
            }

            Assert.Equal(cardNumber, m.GetFieldValue(2));
            Assert.Equal(expectedHexBytes, hexBytes);
        }
コード例 #2
0
        public void GlobalSetup()
        {
            packedBytes = new byte[2048];

            logger = new Microsoft.Extensions.Logging.Abstractions.NullLogger <ISOUtilsTest>();

            mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library
        }
コード例 #3
0
ファイル: ISOMessage.cs プロジェクト: nikmes/iso8583net
        /// <summary>
        ///
        /// </summary>
        /// <param name="logger"></param>
        /// <param name="isoMessagePackager"></param>
        public ISOMessage(ILogger logger, ISOMessagePackager isoMessagePackager) : base(logger, 0)
        {
            m_isoMesssagePackager = isoMessagePackager;

            m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0);

            m_isoHeaderPackager = new ISOHeaderVisaPackager(Logger);

            // based on isoHeaderPackager storage class initialize the correct ISOHeader
            m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager);

            m_totalFields = ((ISOMessagePackager)m_isoMesssagePackager).GetTotalFields();
        }
コード例 #4
0
ファイル: BitmapTests.cs プロジェクト: nikmes/iso8583net
        public void BitmapIsSameAsField_1()
        {
            ISOFieldBitmap bitmapOnly = new ISOFieldBitmap(new Microsoft.Extensions.Logging.Abstractions.NullLogger <BitmapTests>());

            bitmapOnly.SetBit(0);
            bitmapOnly.SetBit(2);
            bitmapOnly.SetBit(3);
            bitmapOnly.SetBit(4);
            bitmapOnly.SetBit(7);
            bitmapOnly.SetBit(11);
            bitmapOnly.SetBit(12);
            bitmapOnly.SetBit(14);
            bitmapOnly.SetBit(18);
            bitmapOnly.SetBit(19);
            bitmapOnly.SetBit(22);
            bitmapOnly.SetBit(25);
            bitmapOnly.SetBit(37);

            var mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library
            var m         = new ISOMessage(logger, mPackager);

            m.Set(0, "0100");
            m.Set(2, "40004000400040001");
            m.Set(3, "000000");
            m.Set(4, "000000002900");
            m.Set(7, "1231231233");
            m.Set(11, "123123");
            m.Set(12, "193012");
            m.Set(14, "1219");
            m.Set(18, "5999");
            m.Set(19, "196");
            m.Set(22, "9010");
            m.Set(25, "23");
            m.Set(37, "123123123123");

            var bitmap = m.GetField(1) as ISO8583Net.Field.ISOFieldBitmap;


            var bmOnlybytes = bitmapOnly.GetByteArray();
            var bmBytes     = bitmap.GetByteArray();

            for (int i = 0; i < bmOnlybytes.Length; i++)
            {
                Assert.Equal(bmBytes[i], bmOnlybytes[i]);
            }
        }
コード例 #5
0
ファイル: ISOMessage.cs プロジェクト: ncichris/iso8583net
        /// <summary>
        ///
        /// </summary>
        /// <param name="logger"></param>
        /// <param name="messagePackager"></param>
        /// <param name="isoHeaderPackager"></param>
        //public ISOMessage(ILogger logger, ISOMessagePackager messagePackager, ISOHeaderPackager isoHeaderPackager) : base(logger, 0)
        //{
        //    m_isoMesssagePackager = messagePackager;

        //    m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0);

        //    m_isoHeader = ISOPackagerLoader.GetMessageHeader(m_isoMesssagePackager.GetISOMessageFieldsPackager().HeaderPackager, logger);
        //    // based on isoHeaderPackager storage class initialize the correct ISOHeader
        //    //m_isoHeaderPackager = isoHeaderPackager;
        //    //m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager);

        //    m_totalFields = ((ISOMessagePackager)m_isoMesssagePackager).GetTotalFields();
        //}
        /// <summary>
        ///
        /// </summary>
        /// <param name="logger"></param>
        /// <param name="isoMessagePackager"></param>
        public ISOMessage(ILogger logger, ISOMessagePackager isoMessagePackager) : base(logger, 0)
        {
            m_isoMesssagePackager = isoMessagePackager;

            m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0);

            var headerResult = ISOPackagerLoader.GetMessageHeaderAndPackager(isoMessagePackager.GetISOMessageFieldsPackager().HeaderPackager, Logger);

            m_isoHeader         = headerResult.Header;
            m_isoHeaderPackager = headerResult.Packager;

            //m_isoHeaderPackager =  new ISOHeaderVisaPackager(Logger);
            // based on isoHeaderPackager storage class initialize the correct ISOHeader
            //m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager);

            m_totalFields = (m_isoMesssagePackager).GetTotalFields();
        }
コード例 #6
0
ファイル: TitpTests.cs プロジェクト: ncichris/iso8583net
        public void TerminalIdIsEncodedCorrectly(string terminalId)
        {
            var mPackager = new ISOMessagePackager(logger, "titp.xml"); // initialize from default visa packager that is embeded as a resource in the library
            var m         = new ISOMessage(logger, mPackager);

            m.Set(0, "0100");
            m.Set(2, "4598890000000004");
            m.Set(3, "000000");
            m.Set(41, terminalId);
            var packed   = m.Pack();
            var hexBytes = ISOUtils.Bytes2Hex(packed);

            m.UnPack(packed);
            //                         header(TPDU)   msgtype  bitmap
            string expectedHexBytes = "0000000000" + "0100" + "6000000000800000" + "164598890000000004" + "000000" + ToASCIIHexString(terminalId.PadRight(8, ' '));


            Assert.Equal(terminalId.PadRight(8, ' '), m.GetFieldValue(41));
            Assert.Equal(expectedHexBytes, hexBytes);
        }
コード例 #7
0
ファイル: BitmapTest.cs プロジェクト: nikmes/iso8583net
        public void GlobalSetup()
        {
            logger    = new Microsoft.Extensions.Logging.Abstractions.NullLogger <BitmapTest>();
            mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library
            m         = new ISOMessage(logger, mPackager);

            m.Set(0, "0100");
            m.Set(2, "40004000400040001");
            m.Set(3, "000000");
            m.Set(4, "000000002900");
            m.Set(7, "1231231233");
            m.Set(11, "123123");
            m.Set(12, "193012");
            m.Set(14, "1219");
            m.Set(18, "5999");
            m.Set(19, "196");
            m.Set(22, "9010");
            m.Set(25, "23");
            m.Set(37, "123123123123");
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: nikmes/iso8583net
        static void Main(string[] args)
        {
            ISOMessagePackager mPackager = new ISOMessagePackager(logger);


            ISOMessage m = new ISOMessage(logger, mPackager);

            m.Set(0, "0100");
            m.Set(2, "4000400040004001");
            m.Set(3, "300000");
            m.Set(4, "000000002900");
            m.Set(7, "1234567890");
            m.Set(11, "123456");
            m.Set(12, "193012");
            m.Set(14, "1219");
            m.Set(18, "5999");
            m.Set(19, "196");
            m.Set(22, "9010");
            m.Set(25, "23");
            m.Set(37, "123456789012");
            m.Set(62, 1, "Y");
            m.Set(63, 1, "1222");
            m.Set(63, 3, "9999");
            m.Set(64, "ABCDEF1234567890");
            m.Set(70, "123");
            m.Set(132, "ABABABAB");

            Log.Debug(m.ToString());

            byte[] pBytes = m.Pack();

            Log.Information("Bytes: \n" + ISOUtils.PrintHex(pBytes, pBytes.Length));

            ISOMessage u = new ISOMessage(logger, mPackager);

            u.UnPack(pBytes);

            Log.Debug(u.ToString());
        }
コード例 #9
0
        public void ParseVisaMessage()
        {
            var mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library
            var m         = new ISOMessage(logger, mPackager);

            /*
             * i000:[0110]
             *  i002:[4598890000000004]
             *  i003:[000000]
             *  i004:[000000004000]
             *  i007:[1028080759]
             *  i011:[000001]
             *  i012:[100759]
             *  i013:[1028]
             *  i019:[196]
             *  i025:[00]
             *  i032:[123456]
             *  i037:[000000000001]
             *  i039:[00]
             *  i041:[00002638]
             *  i042:[000000000219854]
             *  i049:[978]
             *
             */
            m.Set(0, "0110");
            m.Set(2, "4598890000000004");
            m.Set(3, "000000");
            m.Set(4, "000000004000");
            m.Set(7, "1028080759");
            m.Set(11, "000001");
            m.Set(12, "100759");
            m.Set(13, "1028");
            m.Set(19, "196");
            m.Set(25, "00");
            m.Set(32, "123456");
            m.Set(37, "000000000001");
            m.Set(39, "00");
            m.Set(41, "00002638");
            m.Set(42, "000000000219854");
            m.Set(49, "978");

            var messagePacked = m.Pack();

            var hexBytes         = ISOUtils.Bytes2Hex(messagePacked);
            var newMessagePacked = ISOUtils.HexToByteArray(hexBytes);

            Assert.Equal(messagePacked, newMessagePacked);
            //                        "160000006D00000000000000000000000000000000000110723820810AC080001045988900000000040000000000000040001028080759000001100759102801960006123456F0F0F0F0F0F0F0F0F0F0F0F1F0F0F0F0F0F0F2F6F3F8F0F0F0F0F0F0F0F0F0F2F1F9F8F5F40978";
            string hexBytesExpected = "160000006D00000000000000000000000000000000000110723820810AC080001045988900000000040000000000000040001028080759000001100759102801960006123456F0F0F0F0F0F0F0F0F0F0F0F1F0F0F0F0F0F0F2F6F3F8F0F0F0F0F0F0F0F0F0F2F1F9F8F5F40978";

            Assert.Equal(hexBytesExpected, hexBytes);

            var newMessage = new ISOMessage(logger, mPackager);

            newMessage.UnPack(messagePacked);

            Assert.Equal(m.GetFieldValue(0), newMessage.GetFieldValue(0));
            Assert.Equal(m.GetFieldValue(2), newMessage.GetFieldValue(2));
            Assert.Equal(m.GetFieldValue(3), newMessage.GetFieldValue(3));
            Assert.Equal(m.GetFieldValue(4), newMessage.GetFieldValue(4));
            Assert.Equal(m.GetFieldValue(7), newMessage.GetFieldValue(7));
            Assert.Equal(m.GetFieldValue(11), newMessage.GetFieldValue(11));
            Assert.Equal(m.GetFieldValue(12), newMessage.GetFieldValue(12));
            Assert.Equal(m.GetFieldValue(13), newMessage.GetFieldValue(13));
            Assert.Equal(m.GetFieldValue(19), newMessage.GetFieldValue(19));
            Assert.Equal(m.GetFieldValue(25), newMessage.GetFieldValue(25));
            Assert.Equal(m.GetFieldValue(32), newMessage.GetFieldValue(32));
            Assert.Equal(m.GetFieldValue(37), newMessage.GetFieldValue(37));
            Assert.Equal(m.GetFieldValue(39), newMessage.GetFieldValue(39));
            Assert.Equal(m.GetFieldValue(41), newMessage.GetFieldValue(41));
            Assert.Equal(m.GetFieldValue(42), newMessage.GetFieldValue(42));
            Assert.Equal(m.GetFieldValue(49), newMessage.GetFieldValue(49));
        }