ISO8583报文协议详情详解.docx

上传人:b****4 文档编号:5879206 上传时间:2023-05-09 格式:DOCX 页数:25 大小:24.13KB
下载 相关 举报
ISO8583报文协议详情详解.docx_第1页
第1页 / 共25页
ISO8583报文协议详情详解.docx_第2页
第2页 / 共25页
ISO8583报文协议详情详解.docx_第3页
第3页 / 共25页
ISO8583报文协议详情详解.docx_第4页
第4页 / 共25页
ISO8583报文协议详情详解.docx_第5页
第5页 / 共25页
ISO8583报文协议详情详解.docx_第6页
第6页 / 共25页
ISO8583报文协议详情详解.docx_第7页
第7页 / 共25页
ISO8583报文协议详情详解.docx_第8页
第8页 / 共25页
ISO8583报文协议详情详解.docx_第9页
第9页 / 共25页
ISO8583报文协议详情详解.docx_第10页
第10页 / 共25页
ISO8583报文协议详情详解.docx_第11页
第11页 / 共25页
ISO8583报文协议详情详解.docx_第12页
第12页 / 共25页
ISO8583报文协议详情详解.docx_第13页
第13页 / 共25页
ISO8583报文协议详情详解.docx_第14页
第14页 / 共25页
ISO8583报文协议详情详解.docx_第15页
第15页 / 共25页
ISO8583报文协议详情详解.docx_第16页
第16页 / 共25页
ISO8583报文协议详情详解.docx_第17页
第17页 / 共25页
ISO8583报文协议详情详解.docx_第18页
第18页 / 共25页
ISO8583报文协议详情详解.docx_第19页
第19页 / 共25页
ISO8583报文协议详情详解.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ISO8583报文协议详情详解.docx

《ISO8583报文协议详情详解.docx》由会员分享,可在线阅读,更多相关《ISO8583报文协议详情详解.docx(25页珍藏版)》请在冰点文库上搜索。

ISO8583报文协议详情详解.docx

ISO8583报文协议详情详解

ISO8583报文协议详解

ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。

8583包前面一段为位图,用来确定包的字段域组成情况。

其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。

1、位图描述如下:

位图位置:

1

格式:

定长

类型:

B16(二进制16位,16*8=128bit)

描述:

如将位图的第一位设为'1',表示使用扩展位图(128个域),否则表示只使用基本位图(64个域)。

如使用某数据域,应在位图中将相应的位设位'1',如使用41域,需将位图的41位设为'1'。

选用条件:

如使用65到128域,需设位图域第一位为'1'

2、每个域的定义如下:

typedefstructISO8583

{

intbit_flag;/*域数据类型0--string,1--int,2--binary*/

char*data_name;/*域名*/

intlength;/*数据域长度*/

intlength_in_byte;/*实际长度(如果是变长)*/

intvariable_flag;/*是否变长标志0:

否2:

2位变长,3:

3位变长*/

intdatatyp;/*0--string,1--int,2--binary*/

char*data;/*存放具体值*/

intattribute;/*保留*/

}ISO8583;

ISO8583Tbl8583[128]=

{

/*FLD1*/{0,"BITMAP,EXTENDED",8,0,0,2,NULL,0},

/*FLD2*/{0,"PRIMARYACCOUNTNUMBER",22,0,2,0,NULL,0},

/*FLD3*/{0,"PROCESSINGCODE",6,0,0,0,NULL,0},

/*FLD4*/{0,"AMOUNT,TRANSACTION",12,0,0,1,NULL,0},

/*FLD5*/{0,"NOUSE",12,0,0,0,NULL,0},

/*FLD6*/{0,"NOUSE",12,0,0,0,NULL,0},

/*FLD7*/{0,"TRANSACTIONDATEANDTIME",10,0,0,0,NULL,0},

/*FLD8*/{0,"NOUSE",8,0,0,0,NULL,0},

/*FLD9*/{0,"NOUSE",8,0,0,0,NULL,0},

/*FLD10*/{0,"NOUSE",8,0,0,0,NULL,0},

/*FLD11*/{0,"SYSTEMTRACEAUDITNUMBER",6,0,0,1,NULL,0},

/*FLD12*/{0,"TIME,LOCALTRANSACTION",6,0,0,0,NULL,0},

/*FLD13*/{0,"DATE,LOCALTRANSACTION",4,0,0,0,NULL,0},

/*FLD14*/{0,"DATE,EXPIRATION",4,0,0,0,NULL,0},

/*FLD15*/{0,"DATE,SETTLEMENT",4,0,0,0,NULL,0},

/*FLD16*/{0,"NOUSE",4,0,0,0,NULL,0},

/*FLD17*/{0,"DATE,CAPTURE",4,0,0,0,NULL,0},

/*FLD18*/{0,"MERCHANT'STYPE",4,0,0,0,NULL,0},

/*FLD19*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD20*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD21*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD22*/{0,"POINTOFSERVICEENTRYMODE",3,0,0,0,NULL,0},

/*FLD23*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD24*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD25*/{0,"POINTOFSERVICECONDITIONCODE",2,0,0,0,NULL,0},

/*FLD26*/{0,"NOUSE",2,0,0,0,NULL,0},

/*FLD27*/{0,"NOUSE",1,0,0,0,NULL,0},

/*FLD28*/{0,"field27",6,0,0,0,NULL,0},

/*FLD29*/{0,"NOUSE",8,0,1,0,NULL,0},

/*FLD30*/{0,"NOUSE",8,0,1,0,NULL,0},

/*FLD31*/{0,"NOUSE",8,0,1,0,NULL,0},

/*FLD32*/{0,"ACQUIRERINSTITUTIONID.CODE",11,0,2,0,NULL,0},

/*FLD33*/{0,"FORWARDINGINSTITUTIONID.CODE",11,0,2,0,NULL,0},

/*FLD34*/{0,"NOUSE",28,0,2,0,NULL,0},

/*FLD35*/{0,"TRACK2DATA",37,0,2,0,NULL,0},

/*FLD36*/{0,"TRACK3DATA",104,0,3,0,NULL,0},

/*FLD37*/{0,"RETRIEVALREFERENCENUMBER",12,0,0,0,NULL,0},

/*FLD38*/{0,"AUTH.IDENTIFICATIONRESPONSE",6,0,0,0,NULL,0},

/*FLD39*/{0,"RESPONSECODE",2,0,0,0,NULL,0},

/*FLD40*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD41*/{0,"CARDACCEPTORTERMINALID.",8,0,0,0,NULL,0},

/*FLD42*/{0,"CARDACCEPTORIDENTIFICATIONCODE",15,0,0,0,NULL,0},

/*FLD43*/{0,"CARDACCEPTORNAMELOCATION",40,0,0,0,NULL,0},

/*FLD44*/{0,"ADDITIONALRESPONSEDATA",25,0,2,0,NULL,0},

/*FLD45*/{0,"NOUSE",76,0,2,0,NULL,0},

/*FLD46*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD47*/{0,"field47",999,0,3,0,NULL,0},

/*FLD48*/{0,"ADDITIONALDATA---PRIVATE",999,0,3,0,NULL,0},

/*FLD49*/{0,"CURRENCYCODE,TRANSACTION",3,0,0,0,NULL,0},

/*FLD50*/{0,"CURRENCYCODE,SETTLEMENT",3,0,0,0,NULL,0},

/*FLD51*/{0,"NOUSE",3,0,0,0,NULL,0},

/*FLD52*/{0,"PERSONALIDENTIFICATIONNUMBERDATA",8,0,0,2,NULL,0},

/*FLD53*/{0,"SECURITYRELATEDCONTROLINformATION",16,0,0,0,NULL,0},

/*FLD54*/{0,"ADDITIONALAMOUNTS",120,0,3,0,NULL,0},

/*FLD55*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD56*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD57*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD58*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD59*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD60*/{0,"NOUSE",5,0,3,0,NULL,0},

/*FLD61*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD62*/{0,"NOUSE",11,0,3,0,NULL,0},

/*FLD63*/{0,"NOUSE",11,0,3,0,NULL,0},

/*FLD64*/{0,"MESSAGEAUTHENTICATIONCODEFIELD",8,0,0,2,NULL,0},

/*FLD65*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD66*/{0,"NOUSE",1,0,0,0,NULL,0},

/*FLD67*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD68*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD69*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD70*/{0,"SYSTEMMANAGEMENTINformATIONCODE",3,0,0,0,NULL,0},

/*FLD71*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD72*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD73*/{0,"NOUSE",6,0,0,0,NULL,0},

/*FLD74*/{0,"NUMBEROFCREDITS",10,0,0,0,NULL,0},

/*FLD75*/{0,"REVERSALNUMBEROFCREDITS",10,0,0,0,NULL,0},

/*FLD76*/{0,"NUMBEROFDEBITS",10,0,0,0,NULL,0},

/*FLD77*/{0,"REVERSALNUMBEROFDEBITS",10,0,0,0,NULL,0},

/*FLD78*/{0,"NUMBEROFTRANSFER",10,0,0,0,NULL,0},

/*FLD79*/{0,"REVERSALNUMBEROFTRANSFER",10,0,0,0,NULL,0},

/*FLD80*/{0,"NUMBEROFINQUIRS",10,0,0,0,NULL,0},

/*FLD81*/{0,"AUTHORIZATIONNUMBER",10,0,0,0,NULL,0},

/*FLD82*/{0,"NOUSE",12,0,0,0,NULL,0},

/*FLD83*/{0,"CREDITS,TRANSCATIONFEEAMOUNT",12,0,0,0,NULL,0},

/*FLD84*/{0,"NOUSE",12,0,0,0,NULL,0},

/*FLD85*/{0,"DEBITS,TRANSCATIONFEEAMOUNT",12,0,0,0,NULL,0},

/*FLD86*/{0,"AMOUNTOFCREDITS",16,0,0,0,NULL,0},

/*FLD87*/{0,"REVERSALAMOUNTOFCREDITS",16,0,0,0,NULL,0},

/*FLD88*/{0,"AMOUNTOFDEBITS",16,0,0,0,NULL,0},

/*FLD89*/{0,"REVERSALAMOUNTOFDEBITS",16,0,0,0,NULL,0},

/*FLD90*/{0,"ORIGINALDATAELEMENTS",42,0,0,0,NULL,0},

/*FLD91*/{0,"FILEUPDATECODE",1,0,0,0,NULL,0},

/*FLD92*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD93*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD94*/{0,"SERVICEINDICATOR",7,0,0,0,NULL,0},

/*FLD95*/{0,"REPLACEMENTAMOUNTS",42,0,0,0,NULL,0},

/*FLD96*/{0,"NOUSE",8,0,0,0,NULL,0},

/*FLD97*/{0,"AMOUNTOFNETSETTLEMENT",16,0,0,0,NULL,0},

/*FLD98*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD99*/{0,"SETTLEMENTINSTITUTIONID",11,0,2,0,NULL,0},

/*FLD100*/{0,"RECVEINGINSTITUTIONID",11,0,2,0,NULL,0},

/*FLD101*/{0,"FILENAME",17,0,2,0,NULL,0},

/*FLD102*/{0,"ACCOUNTIDENTIFICATION1",28,0,2,0,NULL,0},

/*FLD103*/{0,"ACCOUNTIDENTIFICATION2",28,0,2,0,NULL,0},

/*FLD104*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD105*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD106*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD107*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD108*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD109*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD110*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD111*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD112*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD113*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD114*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD115*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD116*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD117*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD118*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD119*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD120*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD121*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD122*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD123*/{0,"NEWPINDATA",8,0,3,2,NULL,0},

/*FLD124*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD125*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD127*/{0,"NOUSE",999,0,3,0,NULL,0},

/*FLD128*/{0,"MESSAGEAUTHENTICATIONCODEFIELD",8,0,0,2,NULL,0},

};

3、变长,定长域说明

如第二域:

域名为主,

数据类型为string

长度为22(是长长度不得超过此数)

是个2位变长域

由于是2位变长,在打包时需在数据域前加上数据的实际长度,如为19位,则表示为:

19+数据值(即前两位为长度)

如第三域:

域名为处理码,

数据类型为string

长度为6

是个定长域

必须填满6位。

附A:

ISO8583各域段的说明

1,信息类型(messagetype)定义

位图位置:

格式:

定长

类型:

N4

描述:

数据包的第一部分,定义数据包的类型。

数据类型由数据包的发起者设定,应遵循以下要求:

数据包开始部分必须是信息类型;

对不支持的信息类型能给出拒绝应答。

0100授权交易

0110授权交易答复

0200金融交易

0210金融交易答复

0240查询交易

0250查询交易答复

0400冲正交易

0410冲正交易答复

0800管理交易

0810管理交易答复

2,位图(BitMap)-基本位图和扩展位图

位图位置:

1

格式:

定长

类型:

B16

描述:

如将位图的第一位设为'1',表示使用扩展位图,否则表示只使用基本位图。

如使用某数据域,应在位图中将相应的位设位'1',如使用41域,需将位图的41位设为'1'。

选用条件:

如使用65到128域,需设位图域为'1'

3、Bit02主(PrimaryAccountNumber)

位图位置:

02

格式:

变长,LLVAR

类型:

N..22

描述:

唯一的确认一个用户交易的基本。

由于银行电子服务系统涉及多个应用系统,而长度最多为22位,故将原标准的19长度改为22位。

4、Bit03处理代码(ProcessingCode)

位图位置:

03

格式:

定长

类型:

N6

描述:

用于描述交易对客户造成何种影响的代码。

处理代码和信息码一起可唯一定义一种交易的类型。

处理代码由以下三部分组成:

位置描述

1-2交易动作码

3-4付出类型,用于借记类,如查询、代收费、转场交易。

5-6收入类型,用于代收费、转帐等。

其中:

ff:

付出

tt:

收入

*视主机而定

5,Bit04交易金额(Amount,Transaction)

位图位置:

04

格式:

定长

类型:

N12

描述:

人要求交易的交易金额,不含任何处理和交易费用。

金额的表示和货币代码有关,应能表示相应货币的最小单位。

参ISO4217有关货币代码定义。

如“000000000100”用于表示美元,表示1.00元;如用于表示意大利货币,则表示100里拉。

对于查询等交易,应设交易金额为“000000000000”。

6,Bit06交易日期和时间(TransmissionDateandTime)

位图位置:

07

格式:

定长,MMDDhhmmss

类型:

N10

描述:

本地交易日期和时间

7,Bit11系统跟踪号(SystemsTraceAuditNumber)

位图位置:

11

格式:

定长

类型:

N6

描述:

终端交易的跟踪。

交易发起终端填写,和“交易日期、时间”、信息类型等合在一起可唯一定义某一个终端的唯一一笔交易。

即是说,在同一天,对一终端,同一类交易的系统跟踪号应保证不同。

系统跟踪号在交易过程中不能修改。

使用此域来匹配请求和通知类交易的返回。

应用系统使用此域来检查收到的授权、金融、自动冲正、结算、管理和网管等类交易的应答包是否是其请求包的应答。

系统跟踪号不用于匹配自动冲正交易,也不用于在预授权消费时匹配前面的预授权交易。

参90域。

对于银行电子服务系统,其系统跟踪号是交易流水号。

8,Bit12本地交易时间(Time,LocalTransaction)

位图位置:

12

格式:

定长,hhmmss

类型:

N6

描述:

交易在终端上发生的时间。

本地交易时间在交易处理过程中不能改变。

在自动冲正,存贮转发时,本地交易时间不能改变。

9,Bit13本地交易日期(Date,LocalTransaction)

位图位置:

13

格式:

定长,MMDD

类型:

N4

描述:

交易在终端上发生的时间。

本地交

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2