我正在尝试解压缩 ISO 8583 消息,但在尝试解压缩第 46 个字段时出现错误,指出长度不能超过 204。请查找我的 ISO 消息:
1200F07405C188C480000100000C1400000410114040200050007700000001320061000000111318201608071619349912090099099001200151059990648742906BANK02701214010962 ibank00000000000000003470404C0000000000000000D00000000404404129EBP123SVCT0000204PAYD00103sort|40402000|;sort2|40478000|;phone2|254716191411|;terminal_id| ibank|;transaction_type|credit_push|07RTPSNIF07RTPSNIF07RTPSNIF1301003013812000011sahalksjdls
我的解析器xml如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager PUBLIC
"-//jPOS/jPOS Generic Packager DTD 1.0//EN"
"http://jpos.org/dtd/generic-packager-1.0.dtd">
<!-- DOCTYPE iso8583packager SYSTEM "ISO8583_PACKAGER.dtd"
-->
<!-- ISO 8583:1993 (ASCII) field descriptions for GenericPackager
-->
<isopackager>
<isofield id="0" length="4" name="Message_Type_Indicator" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="1" length="32" name="Bitmap" class="org.jpos.iso.IFA_BITMAP" />
<isofield id="2" length="19" name="Primary_Account_number" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="3" length="6" name="Processing_Code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="4" length="12" name="Amount_Transaction" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="5" length="12" name="Amount_Reconciliation" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="6" length="12" name="Amount_Cardholder_billing" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="7" length="14" name="Date_and_time_transmission" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="8" length="8" name="Amount_Cardholder_billing_fee" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="9" length="8" name="Conversion_rate_Reconciliation" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="10" length="8" name="Conversion_rate_Cardholder_billing" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="11" length="6" name="Systems_audit_trace_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="12" length="14" name="Local_transaction_time" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="13" length="4" name="Reserved_for_national_use" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="14" length="4" name="Date_Expiration" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="15" length="14" name="Settlement_Date_Business_Date" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="16" length="4" name="Date_Conversion" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="17" length="4" name="Date_Capture" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="18" length="4" name="Merchant_type" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="19" length="3" name="Country_code_Acquiring_institution" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="20" length="3" name="Country_code_Primary_account_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="21" length="3" name="Country_code_Forwarding_institution" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="22" length="12" name="Point_of_service_data_code" class="org.jpos.iso.IF_CHAR" />
<isofield id="23" length="3" name="Card_sequence_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="24" length="3" name="Function_code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="25" length="4" name="Message_reason_code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="26" length="4" name="Card_acceptor_business_code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="27" length="1" name="Approval_code_length" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="28" length="14" name="Transaction_Fees_Amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="29" length="3" name="Reconciliation_indicator" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="30" length="24" name="Amounts_original" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="31" length="99" name="Acquirer_reference_data" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="32" length="11" name="Acquirer_institution_identification_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="33" length="11" name="Forwarding_institution_identification_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="34" length="28" name="Primary_account_number_extended" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="35" length="37" name="Track_2_data" class="org.jpos.iso.IFA_FLLCHAR" />
<isofield id="36" length="104" name="Track_3_data" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="37" length="12" name="Retrieval_reference_number" class="org.jpos.iso.IF_CHAR" />
<isofield id="38" length="6" name="Approval_code" class="org.jpos.iso.IF_CHAR" />
<isofield id="39" length="3" name="Response_code" class="org.jpos.iso.IF_CHAR" />
<isofield id="40" length="3" name="Service_code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="41" length="8" name="Card_acceptor_terminal_identification" class="org.jpos.iso.IF_CHAR" />
<isofield id="42" length="15" name="Card_acceptor_identification_code" class="org.jpos.iso.IF_CHAR" />
<isofield id="43" length="99" name="Card_acceptor_name_location" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="44" length="99" name="Additional_response_data" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="45" length="76" name="Track_1_data" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="46" length="204" name="Amounts_Fees" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="47" length="999" name="Additional_data_national" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="48" length="999" name="Additional_data_private" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="49" length="3" name="Currency_code_Transaction" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="50" length="3" name="Currency_code_Reconciliation" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="51" length="3" name="Currency_code_Cardholder_billing" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="52" length="4" name="Personal_identification_number_data" class="org.jpos.iso.IFA_BINARY" />
<isofield id="53" length="12" name="Security_related_control_information" class="org.jpos.iso.IFA_BINARY" />
<isofield id="54" length="360" name="Amounts_additional" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="55" length="510" name="IC_card_system_related_data" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="56" length="37" name="Original_data_elements" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="57" length="3" name="Authorization_life_cycle_code" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="58" length="11" name="Authorizing_agent_institution_Id_Code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="59" length="999" name="Transport_data" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="60" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="61" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="62" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="63" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="64" length="8" name="Message_authentication_code_field" class="org.jpos.iso.IFA_BINARY" />
<isofield id="65" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="66" length="204" name="Amounts_original_fees" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="67" length="2" name="Extended_payment_data" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="68" length="3" name="Country_code_receiving_institution" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="69" length="3" name="Country_code_settlement_institution" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="70" length="3" name="Country_code_authorizing_agent_Inst." class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="71" length="8" name="Message_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="72" length="999" name="Data_record" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="73" length="6" name="Transaction_Year" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="74" length="10" name="Credits_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="75" length="10" name="Credits_reversal_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="76" length="10" name="Debits_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="77" length="10" name="Debits_reversal_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="78" length="10" name="Transfer_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="79" length="10" name="Transfer_reversal_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="80" length="10" name="Inquiries_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="81" length="10" name="Authorizations_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="82" length="10" name="Inquiries_reversal_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="83" length="10" name="Payments_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="84" length="10" name="Payments_reversal_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="85" length="10" name="Fee_collections_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="86" length="16" name="Credits_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="87" length="16" name="Credits_reversal_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="88" length="16" name="Debits_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="89" length="16" name="Debits_reversal_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="90" length="10" name="Original_Data_Elements" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="91" length="3" name="Country_code_transaction_Dest._Inst." class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="92" length="3" name="Country_code_transaction_Orig._Inst." class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="93" length="11" name="Transaction_Dest._Inst._Id_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="94" length="11" name="Transaction_Orig._Inst._Id_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="95" length="99" name="Card_issuer_reference_data" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="96" length="999" name="Key_management_data" class="org.jpos.iso.IFA_LLLBINARY" />
<isofield id="97" length="17" name="Amount_Net_reconciliation" class="org.jpos.iso.IF_CHAR" />
<isofield id="98" length="25" name="Payee" class="org.jpos.iso.IF_CHAR" />
<isofield id="99" length="11" name="Settlement_institution_Id_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="100" length="11" name="Receiving_institution_Id_code" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="101" length="17" name="File_name" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="102" length="28" name="Account_identification_1" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="103" length="28" name="Account_identification_2" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="104" length="100" name="Transaction_description" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="105" length="16" name="Credits_Chargeback_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="106" length="16" name="Debits_Chargeback_amount" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="107" length="10" name="Credits_Chargeback_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="108" length="10" name="Debits_Chargeback_number" class="org.jpos.iso.IFA_NUMERIC" />
<isofield id="109" length="84" name="Credits_Fee_amounts" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="110" length="84" name="Debits_Fee_amounts" class="org.jpos.iso.IFA_LLCHAR" />
<isofield id="111" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="112" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="113" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="114" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="115" length="999" name="Reserved_for_ISO_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="116" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="117" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="118" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="119" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" /> `enter code here`
<isofield id="120" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="121" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="122" length="999" name="Reserved_for_national_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="123" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="124" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="125" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="126" length="4000" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLLCHAR" />
<isofield id="127" length="999" name="Reserved_for_private_use" class="org.jpos.iso.IFA_LLLCHAR" />
<isofield id="128" length="4" name="Message_authentication_code_field" class="org.jpos.iso.IFA_BINARY" />
</isopackager>