c - ISO 8583 c 库解压消息

标签 c iso8583

我想知道如何使用 DL ISO-8583 Library 解压缩 ISO 8583 消息(C语言)oscarsanderson写的?
例如,如果我有这样的消息:这是我的代码

#include "dl_iso8583.h"
#include "dl_iso8583_defs_1993.h"
#include "dl_output.h" // for 'DL_OUTPUT_Hex'

#define ISOHEADER 4
#define ISOHEADERSTR "%04d"

int main ( void )
{
    DL_ISO8583_HANDLER isoHandler;
    DL_ISO8583_MSG     isoMsg;
    DL_UINT8           packBuf[1000];
    DL_UINT16          packedSize;
    char msg[]="0210323A40010A4180103800000000000000000420050805011392120805042004225132072000001000000115604000800411 163011511463331563GBAAASDD ERRR 1300101B54391001000017654350000000000090300000268410000000300000000000000898100009431000000000000000000 000000000000000036000299";

    unsigned short iso_req_size,iso_resp_size;
    char iso_header[ISOHEADER+1];
     char iso_req_buf[10000];
     char iso_resp_buf[10000];

    /* get ISO-8583 1993 handler */
    DL_ISO8583_DEFS_1993_GetHandler(&isoHandler);
    DL_ISO8583_MSG_Init(NULL,0,&isoMsg);

    // Unpack message
    DL_ISO8583_MSG_Init(NULL,0,&isoMsg);

    (void)DL_ISO8583_MSG_Unpack(&isoHandler,msg,strlen(msg),&isoMsg);
    DL_ISO8583_MSG_Dump(stdout,NULL,&isoHandler,&isoMsg);
    DL_ISO8583_MSG_Free(&isoMsg);

    return 0;

}

我想在解包邮件时检索这些字段:

    [000]:    210
    [003]:    380000
    [004]:    000000000000
    [007]:    0420050805
    [011]:    011392
    [012]:    120805
    [013]:    0420
    [015]:    0422
    [018]:    5132
    [039]:    00
    [049]:    000

最佳答案

您必须将您的消息从十六进制格式转换为二进制格式。 像这样

binMsg[0]=0x02
binMsg[1]=0x10
binMsg[2]=0x32
binMsg[3]=0x3A
binMsg[4]=0x40

直到最后一口。

并使用:

(void)DL_ISO8583_MSG_Unpack(&isoHandler,binMsg,strlen(msg)/2,&isoMsg);

关于c - ISO 8583 c 库解压消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25242055/

相关文章:

iso - iso8538消息中的子元素和子字段是什么?

java - 如何获取发送到 JMETER 中 ISO8583 采样器服务器的字节数组?

c - 使用 .cfg 文件的指针警告

java - 修改当前实例的副本会影响当前实例吗? ( java )

c - Makefile 基础知识

c - '(' token 之前的预期标识符

c - 这个表达式 `n = (n<<3)+(n<<1) + ch-' 0', ch=getchar_unlocked();` 的实际含义是什么?

iso8583 - ISO 8583 Rev 93 字母和数字字符打包/解包

c - 如何使用 Oscar Anderson 的 ISO8583 库获取消息长度?

java - j8583 库 - 如何将值转换为十六进制