001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.iso.packager; 020 021import org.jpos.iso.*; 022 023/** 024 * ISO 8583 v1987 ASCII Packager 025 * 026 * @author apr@cs.com.uy 027 * @version $Id$ 028 * @see ISOPackager 029 * @see ISOBasePackager 030 * @see ISOComponent 031 */ 032public class ISO87APackager extends ISOBasePackager { 033 protected ISOFieldPackager fld[] = { 034 /*000*/ new IFA_NUMERIC ( 4, "MESSAGE TYPE INDICATOR"), 035 /*001*/ new IFA_BITMAP ( 16, "BIT MAP"), 036 /*002*/ new IFA_LLNUM ( 19, "PAN - PRIMARY ACCOUNT NUMBER"), 037 /*003*/ new IFA_NUMERIC ( 6, "PROCESSING CODE"), 038 /*004*/ new IFA_NUMERIC ( 12, "AMOUNT, TRANSACTION"), 039 /*005*/ new IFA_NUMERIC ( 12, "AMOUNT, SETTLEMENT"), 040 /*006*/ new IFA_NUMERIC ( 12, "AMOUNT, CARDHOLDER BILLING"), 041 /*007*/ new IFA_NUMERIC ( 10, "TRANSMISSION DATE AND TIME"), 042 /*008*/ new IFA_NUMERIC ( 8, "AMOUNT, CARDHOLDER BILLING FEE"), 043 /*009*/ new IFA_NUMERIC ( 8, "CONVERSION RATE, SETTLEMENT"), 044 /*010*/ new IFA_NUMERIC ( 8, "CONVERSION RATE, CARDHOLDER BILLING"), 045 /*011*/ new IFA_NUMERIC ( 6, "SYSTEM TRACE AUDIT NUMBER"), 046 /*012*/ new IFA_NUMERIC ( 6, "TIME, LOCAL TRANSACTION"), 047 /*013*/ new IFA_NUMERIC ( 4, "DATE, LOCAL TRANSACTION"), 048 /*014*/ new IFA_NUMERIC ( 4, "DATE, EXPIRATION"), 049 /*015*/ new IFA_NUMERIC ( 4, "DATE, SETTLEMENT"), 050 /*016*/ new IFA_NUMERIC ( 4, "DATE, CONVERSION"), 051 /*017*/ new IFA_NUMERIC ( 4, "DATE, CAPTURE"), 052 /*018*/ new IFA_NUMERIC ( 4, "MERCHANTS TYPE"), 053 /*019*/ new IFA_NUMERIC ( 3, "ACQUIRING INSTITUTION COUNTRY CODE"), 054 /*020*/ new IFA_NUMERIC ( 3, "PAN EXTENDED COUNTRY CODE"), 055 /*021*/ new IFA_NUMERIC ( 3, "FORWARDING INSTITUTION COUNTRY CODE"), 056 /*022*/ new IFA_NUMERIC ( 3, "POINT OF SERVICE ENTRY MODE"), 057 /*023*/ new IFA_NUMERIC ( 3, "CARD SEQUENCE NUMBER"), 058 /*024*/ new IFA_NUMERIC ( 3, "NETWORK INTERNATIONAL IDENTIFIEER"), 059 /*025*/ new IFA_NUMERIC ( 2, "POINT OF SERVICE CONDITION CODE"), 060 /*026*/ new IFA_NUMERIC ( 2, "POINT OF SERVICE PIN CAPTURE CODE"), 061 /*027*/ new IFA_NUMERIC ( 1, "AUTHORIZATION IDENTIFICATION RESP LEN"), 062 /*028*/ new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION FEE"), 063 /*029*/ new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT FEE"), 064 /*030*/ new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION PROCESSING FEE"), 065 /*031*/ new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT PROCESSING FEE"), 066 /*032*/ new IFA_LLNUM ( 11, "ACQUIRING INSTITUTION IDENT CODE"), 067 /*033*/ new IFA_LLNUM ( 11, "FORWARDING INSTITUTION IDENT CODE"), 068 /*034*/ new IFA_LLCHAR ( 28, "PAN EXTENDED"), 069 /*035*/ new IFA_LLNUM ( 37, "TRACK 2 DATA"), 070 /*036*/ new IFA_LLLCHAR (104, "TRACK 3 DATA"), 071 /*037*/ new IF_CHAR ( 12, "RETRIEVAL REFERENCE NUMBER"), 072 /*038*/ new IF_CHAR ( 6, "AUTHORIZATION IDENTIFICATION RESPONSE"), 073 /*039*/ new IF_CHAR ( 2, "RESPONSE CODE"), 074 /*040*/ new IF_CHAR ( 3, "SERVICE RESTRICTION CODE"), 075 /*041*/ new IF_CHAR ( 8, "CARD ACCEPTOR TERMINAL IDENTIFICACION"), 076 /*042*/ new IF_CHAR ( 15, "CARD ACCEPTOR IDENTIFICATION CODE" ), 077 /*043*/ new IF_CHAR ( 40, "CARD ACCEPTOR NAME/LOCATION"), 078 /*044*/ new IFA_LLCHAR ( 25, "ADITIONAL RESPONSE DATA"), 079 /*045*/ new IFA_LLCHAR ( 76, "TRACK 1 DATA"), 080 /*046*/ new IFA_LLLCHAR (999, "ADITIONAL DATA - ISO"), 081 /*047*/ new IFA_LLLCHAR (999, "ADITIONAL DATA - NATIONAL"), 082 /*048*/ new IFA_LLLCHAR (999, "ADITIONAL DATA - PRIVATE"), 083 /*049*/ new IF_CHAR ( 3, "CURRENCY CODE, TRANSACTION"), 084 /*050*/ new IF_CHAR ( 3, "CURRENCY CODE, SETTLEMENT"), 085 /*051*/ new IF_CHAR ( 3, "CURRENCY CODE, CARDHOLDER BILLING" ), 086 /*052*/ new IFA_BINARY ( 8, "PIN DATA" ), 087 /*053*/ new IFA_NUMERIC ( 16, "SECURITY RELATED CONTROL INFORMATION"), 088 /*054*/ new IFA_LLLCHAR (120, "ADDITIONAL AMOUNTS"), 089 /*055*/ new IFA_LLLCHAR (999, "RESERVED ISO"), 090 /*056*/ new IFA_LLLCHAR (999, "RESERVED ISO"), 091 /*057*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL"), 092 /*058*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL"), 093 /*059*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL"), 094 /*060*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE"), 095 /*061*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE"), 096 /*062*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE"), 097 /*063*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE"), 098 /*064*/ new IFA_BINARY ( 8, "MESSAGE AUTHENTICATION CODE FIELD"), 099 /*065*/ new IFA_BINARY ( 1, "BITMAP, EXTENDED"), 100 /*066*/ new IFA_NUMERIC ( 1, "SETTLEMENT CODE"), 101 /*067*/ new IFA_NUMERIC ( 2, "EXTENDED PAYMENT CODE"), 102 /*068*/ new IFA_NUMERIC ( 3, "RECEIVING INSTITUTION COUNTRY CODE"), 103 /*069*/ new IFA_NUMERIC ( 3, "SETTLEMENT INSTITUTION COUNTRY CODE"), 104 /*070*/ new IFA_NUMERIC ( 3, "NETWORK MANAGEMENT INFORMATION CODE"), 105 /*071*/ new IFA_NUMERIC ( 4, "MESSAGE NUMBER"), 106 /*072*/ new IFA_NUMERIC ( 4, "MESSAGE NUMBER LAST"), 107 /*073*/ new IFA_NUMERIC ( 6, "DATE ACTION"), 108 /*074*/ new IFA_NUMERIC ( 10, "CREDITS NUMBER"), 109 /*075*/ new IFA_NUMERIC ( 10, "CREDITS REVERSAL NUMBER"), 110 /*076*/ new IFA_NUMERIC ( 10, "DEBITS NUMBER"), 111 /*077*/ new IFA_NUMERIC ( 10, "DEBITS REVERSAL NUMBER"), 112 /*078*/ new IFA_NUMERIC ( 10, "TRANSFER NUMBER"), 113 /*079*/ new IFA_NUMERIC ( 10, "TRANSFER REVERSAL NUMBER"), 114 /*080*/ new IFA_NUMERIC ( 10, "INQUIRIES NUMBER"), 115 /*081*/ new IFA_NUMERIC ( 10, "AUTHORIZATION NUMBER"), 116 /*082*/ new IFA_NUMERIC ( 12, "CREDITS, PROCESSING FEE AMOUNT"), 117 /*083*/ new IFA_NUMERIC ( 12, "CREDITS, TRANSACTION FEE AMOUNT"), 118 /*084*/ new IFA_NUMERIC ( 12, "DEBITS, PROCESSING FEE AMOUNT"), 119 /*085*/ new IFA_NUMERIC ( 12, "DEBITS, TRANSACTION FEE AMOUNT"), 120 /*086*/ new IFA_NUMERIC ( 16, "CREDITS, AMOUNT"), 121 /*087*/ new IFA_NUMERIC ( 16, "CREDITS, REVERSAL AMOUNT"), 122 /*088*/ new IFA_NUMERIC ( 16, "DEBITS, AMOUNT"), 123 /*089*/ new IFA_NUMERIC ( 16, "DEBITS, REVERSAL AMOUNT"), 124 /*090*/ new IFA_NUMERIC ( 42, "ORIGINAL DATA ELEMENTS"), 125 /*091*/ new IF_CHAR ( 1, "FILE UPDATE CODE"), 126 /*092*/ new IF_CHAR ( 2, "FILE SECURITY CODE"), 127 /*093*/ new IF_CHAR ( 6, "RESPONSE INDICATOR"), 128 /*094*/ new IF_CHAR ( 7, "SERVICE INDICATOR"), 129 /*095*/ new IF_CHAR ( 42, "REPLACEMENT AMOUNTS"), 130 /*096*/ new IFA_BINARY ( 16, "MESSAGE SECURITY CODE"), 131 /*097*/ new IFA_AMOUNT ( 17, "AMOUNT, NET SETTLEMENT"), 132 /*098*/ new IF_CHAR ( 25, "PAYEE"), 133 /*099*/ new IFA_LLNUM ( 11, "SETTLEMENT INSTITUTION IDENT CODE"), 134 /*100*/ new IFA_LLNUM ( 11, "RECEIVING INSTITUTION IDENT CODE"), 135 /*101*/ new IFA_LLCHAR ( 17, "FILE NAME"), 136 /*102*/ new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 1"), 137 /*103*/ new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 2"), 138 /*104*/ new IFA_LLLCHAR (100, "TRANSACTION DESCRIPTION"), 139 /*105*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 140 /*106*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 141 /*107*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 142 /*108*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 143 /*109*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 144 /*110*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 145 /*111*/ new IFA_LLLCHAR (999, "RESERVED ISO USE"), 146 /*112*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 147 /*113*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 148 /*114*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), 149 /*115*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 150 /*116*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), 151 /*117*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 152 /*118*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 153 /*119*/ new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), 154 /*120*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 155 /*121*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 156 /*122*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 157 /*123*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 158 /*124*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 159 /*125*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 160 /*126*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 161 /*127*/ new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), 162 /*128*/ new IFA_BINARY ( 8, "MAC 2"), 163 }; 164 public ISO87APackager() { 165 super(); 166 setFieldPackager(fld); 167 } 168}