PHP处理iso8583报文

前文

前段时间对接一个第三方公司的接口,其他部分或简单、或麻烦,总之没有花很多功夫都完成了。最后在着手交易接口时,犯了难。报文格式区别另外接口,需使用iso8583报文,咋一看文档,很让人懵逼,又是bcd,又是ascii,两个字节压缩成一个字节。
用了将近一周时间慢慢懂了报文规则,开始准备写代码时又有了麻烦事。可能查资料的姿势不对,没找到PHP的DEMO,基本上都是Java实现。PHP又没有字节操作概念,当时迫于无奈都准备申请这块用Java来做。最后感谢我的小伙伴,讨论帮我打开了思路,具体内容记不太清了。主要一个点是,数据传输是流的方式,和图片流又是不一样的。继而想到能不能试试对数据进行压缩,又想着数据传输无关语言,那么PHP没有理由实现不了。鼓捣到最后,虽然个别片段兼容性没那么好,终于是通了,记录下实现的代码。

我的语言真是太苍白了。


iso8583介绍

先来介绍下iso8583报文部分,网上介绍的很详细,此处仅针对项目做简单说明。
报文由三部分组成。

  1. 第一部分消息类型,长度为4,比如交易请求是0200,交易响应是0210,,签到请求是0800,签到响应是0810,直接拼接字符串作为首部。
  2. 第二部分位图定义,用于预设可能存在的数据。有两种不同的位图,若第一位值为1,说明使用扩展位图(128个域数据);若为0,则仅使用64个域的位图。64位位图组合内容如:01001100……&#x
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值