POS脚本语言技术规范(2期).doc_第1页
POS脚本语言技术规范(2期).doc_第2页
POS脚本语言技术规范(2期).doc_第3页
POS脚本语言技术规范(2期).doc_第4页
POS脚本语言技术规范(2期).doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q/ICBC . - 2009 商密3级5年Q/ICBC . - 2009中国工商银行行内技术规范POS脚本语言技术规范2009-XX-XX实施2009-XX-XX发布中国工商银行技术审查委员会办公室XV目 录目 录I前 言II引 言IIIPOS脚本语言技术规范11、范围12、规范性引用文件13、术语和定义13.1.1POS13.1.2脚本14、脚本设计规范14.1菜单脚本14.2交易脚本24.3快捷键定制脚本24.4报文格式脚本25、脚本开发规范25.1菜单脚本语法规范25.2交易脚本语法35.2.1语法规范35.2.2脚本指令集45.2.2.1READCARD45.2.2.2READAMT55.2.2.3INPUT55.2.2.4READPWD75.2.2.5COMM85.2.2.6SHOW85.2.2.7PRINT95.3快捷键定制脚本语法105.4报文格式脚本语法105.5脚本解析器实现要求105.6分行特色业务实现要求11附 录 A11参考文献15前 言本规范旨在规定脚本化架构POS终端业务脚本设计和开发规范,用以指导POS终端脚本化改造的设计开发。本规范共分七章,每章内容说明如下:第一章,范围,主要说明本技术规范的主要内容和适用范围。第二章,规范性引用文件,说明在编写本技术规范过程引用参考行外的文件,并指出了对这些文件引用的有效性。第三章,术语和定义,定义了一组与本规范相关的术语。第四章,脚本设计规范,并简要介绍脚本功能。第五章,脚本开发规范,详细介绍脚本语法,具体说明脚本指令的参数和取值范围;说明分行特色业务实现要求。本规范中附录A为资料性附录,给出菜单脚本和交易脚本的开发实例。本规范由中国工商银行信息科技部提出,中国工商银行技术审查委员会办公室归档管理。本规范负责起草单位:信息科技部、软件开发中心。本规范主要起草人:张兴伟、曾华涛等。引 言为指导我行各POS机型脚本化改造和新入围设备供应商设计、实现脚本解析器,特制定此规范。POS脚本语言技术规范1、 范围本规范是对POS脚本语言的设计描述,从设计与开发角度规范了POS脚本语言功能及使用。本规范适用于软件开发中心及工行入围POS设备供应商。本规范的使用对象为进行POS脚本化改造的设计开发人员,包括软件开发中心POS相关项目及入围工行POS设备供应商的设计与开发人员,分行从事POS脚本化开发的科技人员。2、 规范性引用文件开放平台技术规范3、 术语和定义3.1.1 POSPOS(Point Of Sale),销售点终端,本规范中的销售终端特指银行卡售点终端,简称为POS终端,指能够接受银行卡信息,具有通讯功能,并接受柜员的指令而完成金融交易报文和有关报文交换的设备。3.1.2 脚本脚本是一种简单的程序,脚本通常通过利用高级程序语言或工具的规则和语法来表达指令,是一种纯文本保存的程序,由简单的控制结构组成。本规范中的脚本主要包括菜单脚本和交易脚本,以及辅助性的快捷键定制脚本和报文格式脚本。4、 脚本设计规范4.1 菜单脚本定制菜单的内容,需要配置菜单脚本,菜单脚本应支持以下功能和范围:(1) 菜单显示项(一种语言)长度不应超过14个字节(7个汉字)。(2) 菜单层级最大支持9级菜单,每层子菜单不宜超过9个菜单项。(3) 总菜单项数应限定在100项以内。4.2 交易脚本(1) 用以定制业务处理流程,包括下面七种操作:(a) 卡信息输入操作:包括刷磁卡、手输卡号、芯片卡的处理(包括EMV简易、强制流程的处理,下同)。(b) 金额输入操作:处理交易金额和小费金额。(c) 密码输入操作:处理输密过程,包括PINKEY的计算。(d) 键盘输入操作:处理上送三种输入外的其它通过键盘输入的数据。可以指定输入的最大、最小长度,输入的数据类型、是否回显等参数,基本囊括了所有非加密的键盘输入处理。(e) 通讯操作:处理与综合前置的通讯,其中还包括了相关参数的更新和重新确认处理。(f) 显示操作:通讯完成后,显示后台下传的内容,分行特色业务是对58域内容进行显示处理,默认不同的tag的数据需要分屏显示。(g) 打印操作:包含了保存流水日志和打印凭条。(2) 分行大部分的特色需求,通过以上七种操作的配置组合进行处理。4.3 快捷键定制脚本定制交易快速进入的方式,因各设备供应商端机键盘差异较大,因此本规范只规定09数字键及刷卡、插卡、触卡事件触发的交易。4.4 报文格式脚本报文格式脚本用于定制交易消息号、交易处理码、报文格式,报文格式脚本与具体交易一一对应。5、 脚本开发规范5.1 菜单脚本语法规范(1) 菜单脚本应采用文本形式,每行为一条菜单指令,分隔符为半角“,”,非叶子菜单项不需要分隔符。(2) 交易名称应采用半角的“+”分割,前面为所在国官方语言,后面为通用语言或第二种官方语言,如在中国为:中文名称+英文名称,菜单显示用前面的。(3) 每组“.”表示一个层级。(4) 每次POS下载版本,只下装一个菜单文件,文本名为menu.ms。(5) 分行应通过修改total.menu的内容来定制菜单项;总行下发版本中,含Merchant.menu(商户POS标准菜单)、Check.menu(支票POS标准菜单)、Transfer.menu(转账POS标准菜单)、Finacial.menu(财务POS标准菜单)、stock.menu(收购),分行可以在此六类模板中选择一个,以之为基础进行菜单配置的修改。(6) 菜单示意图5.2 交易脚本语法5.2.1 语法规范(1) POS交易脚本是一个文本文件,一个业务上的交易,应对应一个脚本文件。脚本文件后缀名为txs(Transaction Script),主文件名与功能ID应保持一致,具体功能ID对照表见附录A1。(2) POS交易脚本的每一行为一个指令,基本上应对应一步业务操作。(3) 每个指令的格式为指令名+参数,参数间以半角“,”相隔,参数内用“,”表示“,”。具体为:指令名,参数1,参数2 ,参数n,若某参数内容为空,请保留前导分隔符“,”,对于末尾参数若使用此参数的程序默认值,则无需保留前导“,”。指令描述形式说明:(4) 交易脚本语法不支持循环、嵌套、分支,解析器按照脚本指令顺序依次解析、执行交易脚本,若当前指令执行失败,则退出交易,解析器解析脚本指令时不应对参数值中的空格进行过滤。5.2.2 脚本指令集指令不分大小写,各参数之间应以半角逗号(“,”)为分隔符。5.2.2.1 READCARD(1) 指令功能:处理卡号、帐号等信息输入,具体包括磁条卡、芯片卡(包括接触式、非接触式EMV卡)、手输卡号以及支票号、付款账号等信息)。(2) 传入参数(a) Index:1输第一张卡,2输第二张卡,3-支票号、付款帐号处理(联动),默认为第一张卡(b) Comment1:提示内容,若无此参数,则系统默认在屏幕第二行显示“请刷卡或插IC卡”。若参数为空,则显示空。(c) Comment2:提示内容,若无此参数,则系统默认在屏幕第三行“或手输卡号”,若参数为空,则显示空。(d) Limit:0不允许手输,允许刷卡、插卡;1允许手输、插卡、刷卡,2-不允许插IC卡,允许刷卡、手输,3-不允许刷卡、允许手输、插卡,4-只允许刷卡,不允许插卡、手输,5-只允许手输,不允许插卡、刷卡,6只允许插卡、不允许刷卡、手输,默认为1。(3) 指令示例READCARD,1 使用默认提示信息,允许手输READCARD,1, Comment1为空,使用默认提示信息Comment2,允许手输READCARD,1, Comment1,Comment2都为空,允许手输READCARD,1,xxxx Comment1为自定义,Comment2为默认,允许手输READCARD,1,xxxx Comment1为空,Comment2为自定义,允许手输READCARD,1,xxxx, Comment1为自定义,Comment2为空,允许手输READCARD,1,xxxx,xxxx Comment1,Comment2都为自定义,允许手输READCARD,1,xxxx,xxxx,0 Comment1,Comment2都为自定义,不允许手输5.2.2.2 READAMT(1) 指令功能:处理金额输入及屏幕显示。(2) 传入参数(a) TYPE:处理类型,0交易金额,1交易金额(包含联体小费),2小费金额(必输),3-积分,4-单体小费金额(选输),默认为0。 (b) PROMPT:提示信息,输入金额提示语,若无此参数,如果处理类型为交易金额,则显示“请输入交易金额:”。如果处理类型为小费金额(含2和4),则显示“请输入小费金额:”,如果处理类型为积分,则显示“请输入积分:”。(c) NEEDAUTH:金额超限授权标志,0无需授权,1根据操作员限额和主管操作员限额参数值(由参数下载工具或手工参数设置),判断交易是否需要授权,默认值为0。需要授权时,若金额大于管理员限额,提示“金额超限”,发错误提示音,并退出交易。若金额小于等于管理员限额而大于操作员限额,进入管理员授权处理,授权成功后继续下一条指令,否则退出交易。管理员授权处理过程:提示“交易需要主管授权,请输入主管编号”,输入主管编号后验证主管身份,输入不合法报“授权用户非主管”或“指定主管不存在”退出交易,否则继续提示“请输入主管密码”,输入主管密码后验证主管密码。若主管密码错提示“主管密码错”并退出交易。否则提示“主管授权成功”并进入一条指令处理。5.2.2.3 INPUT(1) 指令功能:处理各类键盘输入及屏幕显示。(2) 传入参数(a) VerType:输入的数据校验类型。以区别对输入数据的简单校验和解析处理。l 0普通类型,1有效期(MMYY)l 2-日期类型(YYMMDD,输入后在输入的字符前默认补20)l 3支票日期(判断是否在10天的有效期内)l 5不能全为0,如:授权号、积分数校验(不能全为0)l 6-输入只能是最大长度或最小长度l 7-分行特色业务撤销专用检索参考号,宜使用与中间业务平台连接的系统产生的流水号(主机或第三方系统),max需配置为8,MAPS返回时不足23位左补字符0,端机流水文件中为23位。l 默认为普通类型。(b) Comment:提示信息,不能为空,支持换行符n(两个字节的ascii编码),换页符p(两个字节的ascii编码),最长1024B。单行内容不得超过本机型单行能显示的最大字符数(当前是16B),提示信息从第二行开始显示(第一行显示交易名称),每页配置最多三行。(c) Max:允许输入的最大长度,最大取值48,默认值为48,格式:十进制。(d) Min:允许输入的最小长度。若为0,表示允许输入空值,默认值为0,最大取值48。格式:十进制。(e) Type:输入方式l 0数字,需确认。l 1字符(包括数字),需确认。l 2数字不回显(屏幕用星号替代),需确认。l 3字符(包括数字)不回显(屏幕用星号代替,很少用),需确认。l 4数字不回显、不确认(只能输入09);默认为4;如需回显,回显在“提示信息”后一行,需保证一屏能完整显示。多页选择时至少支持确认键翻屏,与type为4 配合使用。格式:十进制。(f) TagNo:指定在57域中的tag序号,两位,00FF(十六进制),打包时Tag和Length都是二进制,Tag占一个字节,Length小于255时使用一个字节,大于等于255时,先使用一个字节赋值255表示TLV串中Value长度大于等于255,然后用两个字节表示实际长度(short类型)。格式:十六进制。(g) Sign:交易标识,主控用以判断含有该参数的INPUT语句是否需要执行的依据。l 0-普通输入字段。l 2-表示如果判断“退货交易如果红利不足是否资金补足标志”为1才需要执行该INPUT语句。l 3-表示如果判断“红利活动编号标志”为1时才需要执行该INPUT语句;默认值0。总行脚本配置时使用前导符号半角的“!0”,如!03,如果判断“红利活动编号标志”为1时才需要执行该INPUT语句,分行配置时不配或直接配置0、2、3。(h) ValueOp:输入值操作定义l 第一位存储方式saveType:0是覆盖,1追加,2替换。l 第二位处理标识saveSign,0数据报存到域中,1数据报存到TAG中。l 第三位填充方式packType,0左补,1右补,2-无需填充(默认);第四、五填充字符packChar(16进制表达,空格20,0为30);第六、七位为输入变量处理后最终长度(16进制)fildLen;第八、第九位,替换时的原字符串的起始位置(16进制)startPos,替换时是拿补足后的输入数据进行替换,而不是替换后再补足,配置时使用前导“!3”表示。例如:!31103013,表示对于用户输入的内容进行左填充0,补足19位后追加到本操作TagNo表示的TLV 字符串中。如:!3200300203表示将用户输入的单个字符进行左补操作,补足2位替换BitPos标识的域变量值,从第三位开始替换。(替换时参数长度比普通的长2B),本参数需与TagNo或BitPOs配置使用,若两者不存在,本参数也不可出现。(i) BitPos:指定8583报文里对应域号。对于总行标准交易,需要配置此参数。分行特色业务的输入,全部打到57域,故分行使用时,这个参数无需配置。此参数配置时使用前导符号半角的“!1”,如!125,表示数据打入BITMAP第37域。格式:十六进制。(3) 备注Sign,BitPos、ValueOp 三个参数采用了特殊的处理逻辑,用!N标识,目前只定义了!0,!1,!3三种类型,后续根据需要将加以扩充,用以区分总行交易脚本与分行交易脚本。对于总行交易脚本,三个参数可不按照顺序出现。分行一般不需要配置这三个参数,程序解析时作为末尾参数处理(顺序处理Sign、ValueOp、BitPos,无前导!N)。5.2.2.4 READPWD(1) 指令功能:处理密码输入(包括输支票密码)。(2) READPWD,(3) 传入参数(a) Prompt:密码输入提示信息,若无此参数,则系统应提示:“请持卡人输入密码”。(b) NocardFlag:身份认证方式,0密码认证,1无卡认证。如果脚本配置无卡认证标志,此时端机支持无卡收单方式并且是手输卡号交易方式,则依次提示用户输入CVV,证件类型,证件号码,此时密码不再要求输入。注:若用户输入CVV为空时,后续证件类型和证件号码不再提示输入,继续走下一条指令。默认值为0。5.2.2.5 COMM(1) 指令功能:通讯处理。(2) 传入参数(a) ProcCode:交易处理码,长度为4位或者6位,不足6位左补0。用以支持一个交易多次上送报文(最多5次),标识本次通讯使用的处理码。(b) ReversalFlag:交易失败,是否需要冲正标志,0无需冲正,1需要冲正;ReversalFlag默认值为1。(c) MTI:消息ID,长度4B,数字,十进制。(d) BITMAP:位元表,16B,16进制字符串。5.2.2.6 SHOW(1) 指令功能(a) 通讯完成后,显示后台下传内容,内容中存在“n”为换行符(两个字节的ascii编码),“p”为换页符(两个字节的ascii编码),“”单独出现将视为正常字符处理。特色业务金额需要在密码键盘显示的,中间业务平台在一个单独的tag返回,数字前加前导$,金额后边无其他内容,如返回“余额:$1500.00”,1500.00显示在密码键盘上。(b) 分行特色业务专用,总行标准业务交易返回的相关显示由通讯模块自主完成。(2) 传入参数(a) TAG1:从58域中那个TAG里面取显示数据,参数格式:2B,16进制。(b) dispTYPE:参数格式:1B,十进制,默认取值 2。l 0只需显示10秒(按任意键退出显示,进入交易下一步,取消键交易退出,不支持屏幕翻页)。l 1需要确认,用户按确认进入下一步,按取消结束交易,需支持屏幕翻页,若无翻页键,需要支持按确认键翻页,翻到最后一页,再按确认进入下一步,当输入类型参数Type为需要确认的取值时,处理方式与此相同,若端机带有翻屏键,支持两种翻屏方式(使用翻屏键后再按确认不翻屏,视为交易确认)。l 2需要用户输入(数字、字幕、混合等,输入类型见后面参数Type说明)。(c) TAG2:用户输入打到57域的那个TAG里面,2B,16进制。(d) VeriType:校验输入的数据类型。以区别对输入数据的简单校验和解析处理。参数格式:1B,十进制,默认0。l 0普通类型。l 1有效期(MMYY)。l 2日期类型(YYMMDD,输入后在输入的字符前默认补20)。l 3支票日期(判断是否在10天的有效期内)。l 5不能全为0,如:授权号、积分数校验(不能全为0),默认是普通类型。l 6输入只能是最大长度或最小长度。(e) Max:允许输入的最大长度,最大取值48,默认值为48,格式:十进制。(f) Min:允许输入的最小长度。若为0,表示允许输入空值。(g) Type:输入类型l 0数字,需确认。l 1字符(包括数字),需确认。l 2数字不回显(屏幕用星号替代),需确认。l 3字符(包括数字)不回显(屏幕用星号代替,很少用),需确认。l 4数字不回显、不确认(只能输入09);默认为4;如需回显,回显在“提示信息”后一行,需保证一屏能完整显示。5.2.2.7 PRINT(1) 指令功能:PRINT主要用于保存流水并打印凭条。分行特色业务打印内容由后台系统从59域传输,最大长度512B,支持换行符“n”(一个字节0X0A),打印在凭条中“交易类型”和“持卡人签名”两项之间,应在39域返回交易成功时进行打印。(2) 传入参数:sumFlag(统计标志),取0/1/-1三个值中的一个,此参数仅对分行特色交易有用,若指令不带参数,默认值为1。l 0表示报文第5域的清算金额不列入汇总统计,笔数累加。l 1表示报文第5域的清算金额为正金额,金额累加,笔数累加。l -1表示报文第5域的清算金额为正金额,金额递减,笔数累加。(3) 关联文件(a) 本指令使用配置文件trans.ps,用以根据主机原交易代码查询撤销的原交易代码。(b) 文件中每行一条记录,每行两列,分别为主机原交易代码(当日撤销48域返回主机原交易代码)和端机原交易代码,采用半角“,”作为分隔符 。例如:2860,10015.3 快捷键定制脚本语法(1) 使用文件进行配置,文件名称fast.ms,每行一条记录,每行三列,分别为键值,交易ID,交易名称,列之间采用半角逗号分割。(2) 允许多个键值对应同一个交易ID值,但严禁同一键值对多个交易ID。(3) 交易名称采用半角的“+”分割,前面为所在国官方语言,后面为通用语言或第二种官方语言,如在中国可以使用:中文名称+英文名称。(4) 键值范围:09表示按数字09,10刷卡,11插卡,12触卡。对于同一数字(按键或读卡),支持用户通过脚本配置,对应任意不重复的交易脚本ID。例如:4,1011,预授权+PRE-AUTH10,1001,消费+SALE11,1001,消费+SALE12,1001,消费+SALE5.4 报文格式脚本语法(1) 脚本文件名为trans.cfg,每行对应一个交易配置,每行四列,采用半角“,”分割格式。 交易ID(4B)消息ID(4B)处理码(6B)BITMAP(16B,16进制形式)(2) BITMAP为可选配置,不做强制要求。(3) 分行特色交易使用固定的消息ID:8900,综合前置返回8910,处理码由分行自主定义,BITMAP通用。举例:消费交易配置1001,0200,000000,77A40E5034C093D15.5 脚本解析器实现要求(1) 解析器处理流程:(2)(3) 端机程序(非脚本部分)应在物理上划分为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论