📄 readme
字号:
$Id: README,v 1.1 2000/03/04 00:03:44 apr Exp $So you need to pack and unpack ISO-8583 messages ...The good news is that after running this 'simplepack' exampleyou will be packing and unpacking ISO-8583 messages.The bad news... packing and unpacking ISO-8583 messagesis just a little part of your financial interchange requirements. There are many other things such as messagetransmission, message framing, low level wire protocols, higher level business logic, transaction batches, reconcilliation, etc. that you will have to take careabout.A. Packing---------- 1) Create an ISOPackager instance (can be reused within application) 2) Create and populate an ISOMsg instance 3) Assign previously created ISOPackager to ISOMsg 4) Call pack() on your ISOMsg instance and you'll get a byte[] with your packed ISO-8583 messageB. Unpacking------------ 1) Create an ISOPackager instance (can be reused within application) 2) Create a new ISOMsg instance 3) Call unpack(byte[]) on your ISOMsg instance giving a previously packed ISO-8583 image as a parameter. 4) Your ISOMsg instance gets populated and you can work with it. (setting/unsetting fields, merging, cloning, etc. See 'isomsg' example)Message Packagers (ISOPackager) and Field Packager (ISOFieldPackager)--------------------------------------------------------------------- There are many out-of-the-box easy-to-extend ISOPackagersavailable on jPOS distribution. They are located atorg.jpos.iso package.As for jPOS v1.2 we have: --[ standard packagers ]-- ISO87APackager : ISO8583 version 1987 ASCII Packager ISO87BPackager : ISO8583 version 1987 Binary packager X92Packager : ANSI X9.2 --[ customized contributed packagers ]-- BASE24Packager : BASE24 Packager (trademark of ACI) PostPackager : Postillion Packager (trademark of Mosaic Software) VAPSMSPackager : VISA's VAP SMS Packager VAPVIPPackager : VISA's VAP VIP Packager VISA1Packager : VISA1 to ISO-8583 AdapterAll of them implements ISOPackager so you can easily ISOPackager packager = new ISO87APackager();Have a look now at any ISOPackager implementation (such asISO87APackager) available at org.jpos.iso.ISO87APackager.java.You'll find something like this: protected ISOFieldPackager fld[] = { new IFA_NUMERIC ( 4, "MESSAGE TYPE INDICATOR"), new IFA_BITMAP ( 16, "BIT MAP"), new IFA_LLNUM ( 19, "PAN - PRIMARY ACCOUNT NUMBER"), new IFA_NUMERIC ( 6, "PROCESSING CODE"), new IFA_NUMERIC ( 12, "AMOUNT, TRANSACTION"), .... ....You will find an ISOFieldPackager array that describe how topack and unpack every possible ISO-8583 message field.You should _double check_ that information toward the specificationgiven by your acquirer/financial interchange counterpart.The naming convention used for ISOFieldPackager implementationsis "similar" to what you'll see in your interchange documents.They start with "IF" (that stands for Iso Fieldpackager).For example: IF_CHAR is a fixed length character field IFA_NUMERIC is a fixed length numeric field IFB_NUMERIC is a fixed length numeric field packed as BCDWe use IFA_* and IFB_ for ASCII fields and BCD or what weinternally call "Binary" fields.ISO87BPackager uses IFB* field packagers while ISO87APackageruses IFA* field packager.Then it comes the LL, LLL, LLLL fields (see ISO-8583 specs fordetails).As for jPOS v1.2 we have:IFA_AMOUNT IFA_LLNUM IFB_LLHFBINARYIFA_BINARY IFA_NUMERIC IFB_LLHNUMIFA_BITMAP IFB_AMOUNT IFB_LLLBINARYIFA_FLLCHAR IFB_BINARY IFB_LLLCHARIFA_FLLNUM IFB_BITMAP IFB_LLLNUMIFA_LLCHAR IFB_CHAR IFB_LLNUMIFA_LLLBINARY IFB_LLBINARY IFB_NUMERICIFA_LLLCHAR IFB_LLCHAR IF_CHARIFA_LLLLCHAR IFB_LLHBINARY IF_ECHARIFA_LLLLLCHAR IFB_LLHCHAR IF_NOPIFA_LLLNUM IFB_LLHECHARSpecial cases are: IF_NOP : it is a No Operation field. It is usefull when mapping ISO-8583 messages to legacy systems with fixed length structures. IF?_*E* : converts to/from EBCDIC IF?_*H* : weird name for weird packaging. Specifies variable length of LL* messages in BCD instead of BINARY or ASCII. I'm yet to find out why I've choosed "H" as a name, kinda "Hexadecimal" but it is not hexadecimal, it's BCD (will be deprecated in favor of a better name).Packaging nested Messages -------------------------jPOS can handle nested ISO-8583 messages. In order to pack a nested message you'll have to useISOMsgFieldPackager in your outter message(have a look at PostPackager.java or VIPVAPPackager.java)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -