ISO8583手机端打包—— iOS库

前言

通常刷卡交易中是用到的8583报文是在前置后台打包,或是在POS端打包,手机端只是作为通信链路的媒介存在,不作为打包方案。

也有少数用户(不在意安全……)会使用手机端打包。
anyway,写了一个iPhone端打包的iOS util.

github项目地址

简介

  • ISO8583是金融行业中,有关金融交易的电子信息交换应用规范。
  • ISO8583国际标准设计了一个保证在采用不同应用规范的系统间能够进行信息交换的界面规范。各应用规范可保持在专用级别上。在信息可以转换成能够进行国际交换的界面格式这一总的约束条件下,各应用系统的设计者可享有完全的灵活性。
  • ISO8583标准使用一个称为“比特图”的概念,在此,对每个数据元在控制字段或比特图中分配一个位置标记。在一个具体信息中,数据元存在则在指定的位置上用“1”标明,数据元不存在则用“0”标明。
  • 各个系统所采用的信息格式取决于个系统签约双方的商务关系。ISO8583标准定义的数据格式能构保证符合标准的个系统总是兼容的。
  • POS终端上送POS中心的消息报文结构
    包括TPDU、报文头和应用数据三部分:
    • ——TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值。(TPDU决定了终端与系统之间的网络协议)
    • ——报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。
      在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件总版本号、终端状态和软件分版本号(具体指各厂商的程序版本号),用于POS中心根据数值进行相应的处理。
      在POS中心返回的应答报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。
  • —— 8583 Msg 应用数据

ISO8583信息结构

  • ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分;其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。

  • 本国际标准标识的每一信息按顺序结构排列:信息类型识别符(4位数字)一个或多个比特图和一个按比特图表述的顺序排列的数据元序列如下图

  • 基本比特图信息结构:

  nnnn |0_______________|_______________________________|
       |(01)--------(64)|----------  数据元  -----------|      
 信息码      比特位置
 扩展的比特图信息结构:
  nnnn |1_____________|0___________|__________________|
       |(01)------(64)|(65)---(128)|------数据元------|                    
 信息码      比特位置

信息类型识别符

  • 信息类型识别符一个4位数字的数字型字段,它描述每一信息的类型和功能。所有信息都用一个信息类型识别符开始

  • 第1位和第2位数字标明信息类别:
    00xx 保留给iso使用
    01xx 授权信息
    02xx 金融交易信息
    03xx 文件更新信息
    04xx 撤销信息
    05xx 对帐控制信息
    06xx 管理信息
    07xx 保留给iso使用
    08xx 网络管理信息
    09xx-79xx 保留给iso使用
    80xx-89xx 保留给国家使用
    90xx-99xx 保留给民间使用

  • 比特图(位图 bitMap)
    信息的第二部分构成是一个或多个比特图,该比特图由64个位构成,左边位为“1”。每一位用“1”或“0”表示与该特定位有关的数据元信息的存在或不存在。基本的比特图(1-64位)总是存在的,最常用的数据元依这些比特位置进行排序。不常用的数据元依辅助的比特图(65-128位)进行排序。辅助的比特图如果存在,则由基本的比特图中01位取值为“1”标明(扩展的比特图)
    比特图的第一位取值为“1”,表明其后紧接有一个辅助的比特图如图:

  • 数据类型
    信息的第三部分构成及其数据内容由一系列数据元组成。
    利用比特图作为已存在数据元的一个索引,对信息进重组。一些数据元有固定长度,另一些数据元的长度不固定。任何指定的可变长度数据元的实际长度有其固定的长度前缀决定。
    A 字母向左靠,右部多余部分填空格。
    AN 字母和/或数字,左靠,右部多余部分填空格。
    ANS 字母、数字和/或特殊符号,左靠,右部多余部分填空格。
    AS 字母和/或特殊符号,左靠,右部多余部分填空格。
    B 二进制bit位。
    N 数值,右靠,首位有效数字前充零。若表示金额,则最右二位为角分。1.00 = 00 00 00 00 01 00
    S 特殊符号。
    DD 日。
    hh 时。
    MM 月。
    mm 分。
    ss 秒。
    YY 年。
    Z 由ISO 7811和ISO 7813制定的磁条卡第二、三磁道的数据类型。
    X 借贷符号,在数值之前,D表示借,C表示贷。
    LL 可变长域的长度值(二位数)。
    LLL 可变长域的长度值(三位数)。
    VAR 可变长域。
    CN BCD压缩编码数值。
    变量XYZ的数据类型为ANS...999(LLLVAR),则表示:该变量中可含字母、数字和特殊符号,最长不超过999个字符,长度由三位数字确定。
    变量XYZ的数据类型为N...999(LLLVAR),则在压缩时,其长度位用右靠的BCD码压缩,而其后紧随的数字内容用左靠的BCD码压缩。这是为了保证有效内容和其位数中间无缺省填充值。若不为偶数位,左靠的数字内容后补零。由于有长度位表征该域有效内容的长度,因此后补零不会改变该域的真实值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容