m1ome / iso8583

PHP ISO8583 pack/unpack library
MIT License
14 stars 17 forks source link

解包那里没搞明白, 我举个例子给你看 #3

Closed he426100 closed 7 years ago

he426100 commented 7 years ago

签到响应报文如下: 009C60000000066001010101020810003800010AC100140000131719390311081113544031303730333939313633323330303130303134323630383838303030303532333130303031002410014260888000052310001000110000000100300061003883AAFDDAF79B1717027FA23015E1A9E893B9AD23D99DBA4E0E74AF2FBBAD0DECD0EBCDED58EA90287F81FB147DD7FB69D94B0DA582DE5A9BC12418 报文格式为:tpdu 5,报文头6,消息类型就是16进制下第26到底30个字符,也就是0810(请求时消息类型是0800),位图是00 38 00 01 0A C1 00 14,解析得到位图信息为:11、12、13、32、37、39、41、42、48、60、62

unpack里面有一段要这样改才能解包成功 // Parsing MTI $this->setMTI(substr($message, 0, 4)); $this->shrink($message, 4);

lengthPrefix我传入的是13,就是tpdu+报文头。

按你的写法, setMTI传入的是hex2bin的结果,怎么样都通不过吧

m1ome commented 7 years ago

In e.g. you have something like you should manually shrink message to format and "lengthPrefix" only provide support for a message length calculations, you can even don't have a length prefix in your protocol.