新闻动态 news

DCC Group节点的解析问题

◆问题描述:

 在新的DCC测试环境中,解析DCC500500交易的响应报文出错,报无效的循环节点。

◆问题主题词:EIX DCC Service Data

◆回答:

 经查,问题如下,在河南建行新的DCC测试环境中,DCC Service Data返回的Group下节点排列情况如下:
145:  SCR50050_0.### INT: 5
146:  SCR50050_0.PSBK_NO## INT: 5
147:  SCR50050_0.PSBK_NO#0 DOUBLE: 0.0
148:  SCR50050_0.TD_AMT## INT: 5
149:  SCR50050_0.TD_AMT#0 DOUBLE: 0.0
150:  SCR50050_0.PSBK_SQ_NO## INT: 5
151:  SCR50050_0.PSBK_SQ_NO#0 DOUBLE: 0.0
152:  SCR50050_0.PSBK_NO#1 DOUBLE: 0.0
153:  SCR50050_0.TD_AMT#1 DOUBLE: 0.0
154:  SCR50050_0.PSBK_SQ_NO#1 DOUBLE: 0.0
155:  SCR50050_0.PSBK_NO#2 DOUBLE: 0.0
156:  SCR50050_0.TD_AMT#2 DOUBLE: 0.0
157:  SCR50050_0.PSBK_SQ_NO#2 DOUBLE: 0.0
158:  SCR50050_0.PSBK_NO#3 DOUBLE: 0.0
159:  SCR50050_0.TD_AMT#3 DOUBLE: 0.0
160:  SCR50050_0.PSBK_SQ_NO#3 DOUBLE: 0.0
161:  SCR50050_0.PSBK_NO#4 DOUBLE: 0.0
162:  SCR50050_0.TD_AMT#4 DOUBLE: 0.0
163:  SCR50050_0.PSBK_SQ_NO#4 DOUBLE: 0.0
164:  SCR50050_0_total.num INT: 5

 上述的Service Group返回数据方式与以前的返回差异在于,Group下的字段是合在一起混排返回而不是逐字段处理完毕再处理下一个字段的方式,并且增加了 SCR50050_0_total.num 字段,按照以前的方式,该返回应该按照下述方式来返回:

145:  SCR50050_0.### INT: 5
146:  SCR50050_0.PSBK_NO## INT: 5
147:  SCR50050_0.PSBK_NO#0 DOUBLE: 0.0
148:  SCR50050_0.PSBK_NO#1 DOUBLE: 0.0
149:  SCR50050_0.PSBK_NO#2 DOUBLE: 0.0
150:  SCR50050_0.PSBK_NO#3 DOUBLE: 0.0
151:  SCR50050_0.PSBK_NO#4 DOUBLE: 0.0
152:  SCR50050_0.TD_AMT## INT: 5
153:  SCR50050_0.TD_AMT#0 DOUBLE: 0.0
154:  SCR50050_0.TD_AMT#1 DOUBLE: 0.0
155:  SCR50050_0.TD_AMT#2 DOUBLE: 0.0
156:  SCR50050_0.TD_AMT#3 DOUBLE: 0.0
157:  SCR50050_0.TD_AMT#4 DOUBLE: 0.0
158:  SCR50050_0.PSBK_SQ_NO## INT: 5
159:  SCR50050_0.PSBK_SQ_NO#0 DOUBLE: 0.0
160:  SCR50050_0.PSBK_SQ_NO#1 DOUBLE: 0.0
161:  SCR50050_0.PSBK_SQ_NO#2 DOUBLE: 0.0
162:  SCR50050_0.PSBK_SQ_NO#3 DOUBLE: 0.0
163:  SCR50050_0.PSBK_SQ_NO#4 DOUBLE: 0.0

由于现有的EIX版本中对Service Group的解读一直是严格按照字段分开有序处理的,无法满足新规则下返回的方式,因此出现了错误。

解决方式为修改现有的解读程序eixuser.c
备注:修复这一BUG后,EIX的版本从V2.06_0830升级至 V2.06_1103