QPBOC联机查询:后台响应 作弊卡 问题分析和解决方法

本文仅针对我遇到的具体情况,未必能通用。


今天测试的时候,应用层同事反应,使用QPBOC进行联机交易查询余额的时候,后台返回 “作弊卡”(响应码:34).


开始寻找并定位问题,一开始没多想,因为有旁边其他的厂商可以顺利查询该卡的余额,只有我们的失败,因此直接看 8583 报文。
对比其他正常查询的厂商的8583报文,细看几处不一致的地方。排除一些正常的不同点,比如:不可预知数,9F10的MAC,终端计数器,卡片交易计数器。其他还有9F33的不一致,应该也不是问题,不过还是修改成一致测试一下。
结果毫无悬念的,还是不行。然后在别人的POS上试一下,还是可以正常查询后台余额。

看来不是 8583 的问题,那么下一步,就看一下终端与卡片的交互。

使用smartSpy截获数据,对比我们的POS与别人的POS数据,发现 GPO 阶段,发送给卡片的9C的值不一致。我发送的是 00, 别人发送的是 31。
马上修复 9C 的问题,问题顺利解决。

总结:此问题前后大约花了3-4个小时。其实开始的时候,对比 8583 未果,就应该细致考虑问题,应该是数据前后不一致引起的,那么先考虑PDOL涉及的数据,这样应该可以更快速解决问题。幸亏有smartSpy,否则没有思考前后不一致,没有考虑PDOL的问题,会花更多的时间解决此问题。

另外说一下,为什么 9C 没有正常赋值?因为内核里面,9C并没有根据应用的赋值写进内核。大概原因是测试L2的时候,并不需要9C有别的值,默认为00即可,因此没有对9C赋值也没问题。L2的测试不够完善,写内核的时候疏忽没有获取应用传入的值,这两个原因都有。

你可能感兴趣的:(金融,笔记,GPO,pboc,QPBOC,作弊卡)