Esempio n. 1
0
        public string ParseMessage(string isoMessage)
        {
            var iso = new Iso8583Extended();

            try
            {
                byte[] isoMsg = Encoding.UTF8.GetBytes(isoMessage.Trim());
                iso.Unpack(isoMsg, 0);
                return(iso.ToString());
            }
            catch (Exception ex)
            {
                return(ex.InnerException?.Message ?? ex.Message);
            }
        }
Esempio n. 2
0
        public string ComposeMessage(Dictionary <string, string> isoMessage)
        {
            var isoMsg = new Iso8583Extended();

            try
            {
                if (!isoMessage.ContainsKey("0") || !Int32.TryParse(isoMessage["0"], out int messageType))
                {
                    return("No MTI Specified");
                }

                isoMsg.MessageType = messageType switch
                {
                    410 => Iso8583Extended.MsgType._0410_ACQUIRER_REV_REQ_RSP,
                    420 => Iso8583Extended.MsgType._0420_ACQUIRER_REV_ADV,
                    421 => Iso8583Extended.MsgType._0421_ACQUIRER_REV_ADV_REP,
                    430 => Iso8583Extended.MsgType._0430_ACQUIRER_REV_ADV_RSP,
                    500 => Iso8583Extended.MsgType._0500_ACQUIRER_RECONCILE_REQ,
                    510 => Iso8583Extended.MsgType._0510_ACQUIRER_RECONCILE_REQ_RSP,
                    520 => Iso8583Extended.MsgType._0520_ACQUIRER_RECONCILE_ADV,
                    521 => Iso8583Extended.MsgType._0521_ACQUIRER_RECONCILE_ADV_REP,
                    530 => Iso8583Extended.MsgType._0530_ACQUIRER_RECONCILE_ADV_RSP,
                    600 => Iso8583Extended.MsgType._0600_ADMIN_REQ,
                    601 => Iso8583Extended.MsgType._0601_ADMIN_REQ_REP,
                    610 => Iso8583Extended.MsgType._0610_ADMIN_REQ_RSP,
                    800 => Iso8583Extended.MsgType._0800_NWRK_MNG_REQ,
                    801 => Iso8583Extended.MsgType._0801_NWRK_MNG_REQ_REP,
                    810 => Iso8583Extended.MsgType._0810_NWRK_MNG_REQ_RSP,
                    400 => Iso8583Extended.MsgType._0400_ACQUIRER_REV_REQ,
                    332 => Iso8583Extended.MsgType._0332_ISSUER_FILE_UPDATE_ADV_RSP,
                    330 => Iso8583Extended.MsgType._0330_ACQUIRER_FILE_UPDATE_ADV_RSP,
                    322 => Iso8583Extended.MsgType._0322_ISSUER_FILE_UPDATE_ADV,
                    100 => Iso8583Extended.MsgType._0100_AUTH_REQ,
                    110 => Iso8583Extended.MsgType._0110_AUTH_REQ_RSP,
                    120 => Iso8583Extended.MsgType._0120_AUTH_ADV,
                    130 => Iso8583Extended.MsgType._0130_AUTH_ADV_RSP,
                    200 => Iso8583Extended.MsgType._0200_TRAN_REQ,
                    201 => Iso8583Extended.MsgType._0201_TRAN_REQ_REP,
                    202 => Iso8583Extended.MsgType._0202_TRAN_CMP,
                    203 => Iso8583Extended.MsgType._0203_TRAN_CMP_REP,
                    212 => Iso8583Extended.MsgType._0212_TRAN_CMP_RSP,
                    220 => Iso8583Extended.MsgType._0220_TRAN_ADV,
                    221 => Iso8583Extended.MsgType._0221_TRAN_ADV_REP,
                    230 => Iso8583Extended.MsgType._0230_TRAN_ADV_RSP,
                    300 => Iso8583Extended.MsgType._0300_ACQUIRER_FILE_UPDATE_REQ,
                    310 => Iso8583Extended.MsgType._0310_ACQUIRER_FILE_UPDATE_RSP,
                    320 => Iso8583Extended.MsgType._0320_ACQUIRER_FILE_UPDATE_ADV,
                    210 => Iso8583Extended.MsgType._0210_TRAN_REQ_RSP,
                    _ => Iso8583Extended.MsgType._0000_INVALID_MSG,
                };

                isoMessage.Remove("0");

                foreach (var field in isoMessage)
                {
                    isoMsg[Convert.ToInt32(field.Key)] = field.Value;
                }

                return(Encoding.UTF8.GetString(isoMsg.ToMsg()));
            }
            catch (Exception ex)
            {
                var errorMessage = (ex.InnerException?.Message ?? ex.Message);
                Log.Logger.Error(errorMessage);
                return(errorMessage);
            }
        }