Ввод вашего примера выглядит как стандартная входная строка ASCII ISO-8583, а не в HEX или двоичном формате любого типа. Поэтому, если все ваши данные выглядят так, что большая часть вашей проблемы уже решена.
Что касается понимания того, что у вас есть, существует множество доступных общедоступной информации, характерной для декодирования форматов сообщений ISO-8583 и их значений. Для большинства из них они обычно следуют стандартным форматам полей, но могут иметь настраиваемые значения полей, уникальные для спецификации. Самое большое исключение - VISA и MasterCard, но региональные в США в целом довольно близки к ISO-8583-87.
Страница Википедии и документация jPOS, которые я предположил бы, предоставят вам большую часть документации, которую вы ищете, например, «Что такое поле 44?». Я поддерживаю и смотрю различные спецификации ISO-8583 в течение примерно 15 лет, и вам обычно нужно получить конкретную спецификацию поставщика непосредственно от них для всех вариантов данных и уникальной обработки данных, характерных для интерфейса. Есть несколько доступных для публики, которые довольно легко обнаруживаются путем поиска «ISO-8583 .PDF» в Google.
Улов является большинством спецификаций, и особенно оригинальная спецификация ISO-8583 от самой организации ISO не содержит примеров того, как выглядят конкретные транзакции. Хотя, если вы знаете контент элемента данных 003, вы должны иметь возможность логически собирать множество основных типов сообщений, чтобы хотя бы идентифицировать типы транзакций (т.е. 310000 = Запрос баланса по умолчанию) для вашей программы парсера, улов будет знать все поддерживающие поля и их соответствующие поля, специфичные для этой спецификации сущностей, которые необходимы для того, чтобы действительно сделать головы или хвосты, но с некоторым здравым смыслом вы тоже можете объединить их.
Как только вы знакомы с ISO-8583, вы можете обычно смотреть на блок текста, как у вас выше, который не имеет двоичного кода и мысленно разбирает большую часть его, чтобы получить представление о том, какой тип транзакции он не имеет битмап иногда даже если вы знакомы с этим конкретным вариантом.
Есть ли у кого-нибудь представление об этой проблеме? – user3985315
Существует множество различных реализаций ISO 8583, и они отличаются тем, как поля кодируются и по смыслу значений в полях. В реализациях, которые я видел, комбинация MTI и кода обработки (поле 3) определяют тип сообщения. В любом случае, чтобы интерпретировать сообщение, вы должны получить документацию по реализации ISO 8583, для которой предназначено сообщение. – Stuart