我正在尝试使用 JPOS 库来打包/解包 ISO8583-1987 消息。
我的格式有问题,我在互联网上找不到任何正在运行的示例。
有人可以给我一个解包十六进制消息的运行示例,因为有很多关于 ASCII 消息的示例,但这不是我需要的。
谢谢大家的时间和关注
朱利安
我假设您在字符串中有表示消息的十六进制字符串,在这种情况下,您必须将其转换为字节数组。
例如,假设您将字符串作为 main 的参数。无论如何,您必须知道该十六进制表示中包含的 iso 消息的格式。例如,如果消息是二进制的,则必须选择 ISO87BPackager,如果是 ascii,则必须选择 ISO87APackager。
import org.jpos.iso.packager.ISO87BPackager;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil;
public class ParseISOMsg {
public static void main(String[] args) throws ISOException {
String hexmsg = args[0];
// convert hex string to byte array
byte[] bmsg =ISOUtil.hex2byte(hexmsg);
ISOMsg m = new ISOMsg();
// set packager, change ISO87BPackager for the matching one.
m.setPackager(new ISO87BPackager());
//unpack the message using the packager
m.unpack(bmsg);
//dump the message to standar output
m.dump(System.out, "");
}
}
例如,如果您调用java -cp .:jpos.jar ParseISOMsg 080000200000008000001234563132333435363738
它应该打印:
<isomsg>
<!-- org.jpos.iso.packager.ISO87BPackager -->
<field id="0" value="0800"/>
<field id="11" value="123456"/>
<field id="41" value="12345678"/>
</isomsg>