ISO8583-C语言

#ifndef _ISO8583_H
#define _ISO8583_H

#include "ToppayDef.h"

#define LEN_OF_MAX_BUFFER        2048    /*定义ISO_data结构中最长的缓冲区*/
#define LEN_OF_ISO8583        64        /*定义ISO_data的长度*/

#define UNUSED                0
#define L_BCD                1    /*左对齐BCD码*/
#define L_ASC                2    /*左对齐ASC码*/
#define R_BCD                3    
#define R_ASC                4
#define D_BIN                5
#define OVER                    6

#define FIX_LEN                1    /*(FIX_LEN是指由ISO_8583中的长度决定该域的长度)*/
#define LLVAR_LEN            2    /*(LLVAR_LEN 00~99)*/
#define LLLVAR_LEN            3    /*(LLLVAR_LEN 00~999)*/

#define LEN_FIELD0            4
#define LEN_FIELD1            8
#define LEN_FIELD2            32
#define LEN_FIELD3            6
#define LEN_FIELD4            12
#define LEN_FIELD11            6
#define LEN_FIELD12            6
#define LEN_FIELD13            4
#define LEN_FIELD14            4
#define LEN_FIELD15            4
#define LEN_FIELD22            3
#define LEN_FIELD23            3
#define LEN_FIELD25            2
#define LEN_FIELD26            2
#define LEN_FIELD32            99
#define LEN_FIELD35            48
#define LEN_FIELD36            112
#define LEN_FIELD37            12
#define LEN_FIELD38            6
#define LEN_FIELD39            2
#define LEN_FIELD41            8
#define LEN_FIELD42            15
#define LEN_FIELD44            25
#define LEN_FIELD46            999
#define LEN_FIELD47            999
#define LEN_FIELD48            322
#define LEN_FIELD49            3
#define LEN_FIELD52            8
#define LEN_FIELD53            16
#define LEN_FIELD54            20
#define LEN_FIELD55            255
#define LEN_FIELD58            100
#define LEN_FIELD59            999
#define LEN_FIELD60            999
#define LEN_FIELD61            999
#define LEN_FIELD62            512
#define LEN_FIELD63            163
#define LEN_FIELD64            8

typedef struct {
    uint8    field0[LEN_FIELD0];
    uint8    field1[LEN_FIELD1];
    uint8    field2[LEN_FIELD2];
    uint8    field3[LEN_FIELD3];
    uint8    field4[LEN_FIELD4];
    uint8    field11[LEN_FIELD11];
    uint8    field12[LEN_FIELD12];
    uint8    field13[LEN_FIELD13];
    uint8    field14[LEN_FIELD14];
    uint8    field15[LEN_FIELD15];
    uint8    field22[LEN_FIELD22];
    uint8    field23[LEN_FIELD23];
    uint8    field25[LEN_FIELD25];
    uint8    field26[LEN_FIELD26];
    uint8    field32[LEN_FIELD32];
    uint8    field35[LEN_FIELD35];
    uint8    field36[LEN_FIELD36];
    uint8    field37[LEN_FIELD37];
    uint8    field38[LEN_FIELD38];
    uint8    field39[LEN_FIELD39];
    uint8    field41[LEN_FIELD41];
    uint8    field42[LEN_FIELD42];
    uint8    field44[LEN_FIELD44];
    uint8    field46[LEN_FIELD46];
    uint8    field47[LEN_FIELD47];
    uint8    field48[LEN_FIELD48];
    uint8    field49[LEN_FIELD49];
    uint8    field52[LEN_FIELD52];
    uint8    field53[LEN_FIELD53];
    uint8    field54[LEN_FIELD54];
    uint8    field55[LEN_FIELD55];
    uint8    field58[LEN_FIELD58];
    uint8    field59[LEN_FIELD59];
    uint8    field60[LEN_FIELD60];
    uint8    field61[LEN_FIELD61];
    uint8    field62[LEN_FIELD62];
    uint8    field63[LEN_FIELD63];
    uint8    field64[LEN_FIELD64];
}FIELDS;

typedef struct {
    uint16    len_max;
    uint8    len_type;
    uint8    field_type;
    uint16    field_len;
    puint8    field;
}ISO8583_ATTR;

uint16 IsoToStr(puint8 dest_send);
void StrToIso(puint8 src_rece, uint16 src_len);
uint16 LenOfIso8583();
void ClearIso8583();

#endif


#ifndef _ISO8583_C
#define _ISO8583_C

#include "ToppayDef.h"
#include "ToppayProt.h"
#include "ISO8583.h"

#include "PacketProc.h"

#define LEN_LEN    2

#define TPDU_LEN        5
#define    TPDU_ID            1
#define    TPDU_ADDR_DEST    2
#define    TPDU_ADDR_SRC    2

#define PACKET_HEADER_LEN                            6
#define    PACKET_HEADER_APP_TYPE                        1
#define    PACKET_HEADER_STANDARD        &nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值