⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datapackunpackmodule.h

📁 ISO8583 code pack unpack
💻 H
📖 第 1 页 / 共 2 页
字号:

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the DATAPACKUNPACKMODULE_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// DATAPACKUNPACKMODULE_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef DATAPACKUNPACKMODULE_EXPORTS
#define DATAPACKUNPACKMODULE_API __declspec(dllexport)
#else
#define DATAPACKUNPACKMODULE_API __declspec(dllimport)
#endif

#include<windows.h>
#include"string.h"
#include"stdio.h"

#define MAXFIELDNO 129
#define MAXSNDLEN 1024
#define STRSIZE(X) sizeof(X)-1

struct ATM_Data_Property{									//ATM结构中数据域属性
	int				len;									//数据域的长度,变长数据域为最大长度
	unsigned char	type;									//数据域类型
	unsigned char	flag;									//数据域变长标示
	int				offset;									//在ATM结构中的偏移量
	int				fno;									//内欠结构体的数据中包含的'\0'的个数
};
struct ISO_Data_Property{									//ISO结构中dbuf各段数据属性
	short			bitf;									//位图标志:0/1
	short			len;									//数据实际长度
	int				dbuf_addr;								//第一个字节有效数据在dbuf数组中的下标
};

typedef struct{										
	unsigned char	dbuf[2048];								//存储数据为:Message_ID+OtherData,无message_id+bitmap
	struct			ISO_Data_Property f[MAXFIELDNO];		//数据属性数组
	short			off;									//动态记录下标偏移
	unsigned char	message_id[5];							//信息类型
	unsigned char	bitmap[33];								//位图信息
}ISO_data;													//ISO结构体,介于ATM与ATMP之间的用于数据转换的数据结构


typedef struct{												//占据12+12+9+9=42字节
	unsigned char	actual_amount_of_transaction[12];		//实际交易结算金额n12
	unsigned char	actual_amount_of_settlement[12];		//实际结算金额 n12
	unsigned char	actual_amount_of_trancation_fee[9];		//实际交易费用 X+n8;X是借贷符号D表示借(-)C表示贷(+)
	unsigned char	actual_amount_of_settlement_fee[9];		//实际结算费用X+n8
}ATM_IFORM_Replacement_amount;								//部分或全额冲正交易时所需重置金额an42

typedef struct{												//占据8+6+6=20字节
	unsigned char	org_date_equipment[8];					//原始设备端交易日期 n8(YYYYMMDD)
	unsigned char	org_time_of_equipment[6];				//原始设备端交易时间 n6(hhmmss)
	unsigned char	org_transaction_number_of_equpment[6];	//原始设备端流水号n6
}ATM_IFORM_Original_trade_elements_of_equipment;			//用于冲正交易的原始记录n20

typedef struct{												//占据1+1=2字节                                                   
	unsigned char	personal_pin_data;						//第一位:0-8 personal_pin_data的长度
	unsigned char	new_personal_pin_data;					//第二位:0-8 new_personal_pin_data的长度
}ATM_IFORM_pin_capture_code;								//服务点PIN 获取码n2

typedef struct{												//占据1+20=21字节 
	unsigned char	clientele_identity_type;				//an1证件类型0:身份证
	unsigned char	clientle_identity_code[20];				//an20证件号
}ATM_IFORM_Clientele_identity_id;							//客户证件号

typedef struct{												//占据8+6+12=26字节
	unsigned char	org_date_of_post[8];					//n8(yyyymmdd)原始前置机交易日期
	unsigned char	org_time_of_post[6];					//n6(hhmmss)原始前置机交易时间
	unsigned char	org_transaction_number_of_post[12];		//n12原始前置机流水号
}ATM_IFORM_Original_trace_number_of_prepositive_computer;	//n26冲正所需前置机原始交易数据

typedef struct{												//占据3+13+13+7=36字节
	unsigned char	currency_code[3];						//a3货币代码
	unsigned char	ledger_balance_amount[13];				//X+n12帐户上的帐面余额(若交易不成功为全零)
	unsigned char	available_balance_amount[13];			//X+n12帐户上的可用余额(若交易不成功全为零)
	unsigned char	commission_charg[7];					//X+n6手续费
}ATM_IFORM_Balance_amount_of_bank;							//ans36银行帐户余额

typedef struct{												//占据50+4+4=58字节
	unsigned char	file_name_of_receive[50];				//ans50接收文件名称
	unsigned char	total_datagram_number_of_receive[4];	//n4接收文件包总个数
	unsigned char	current_datagram_number_of_receive[4];	//n4当前接收文件数据块第几个数据包
}ATM_IFORM_Message_of_receive_file;							//ans58文件传输信息

typedef struct{												//占据1+1+1+1+1+1+1+1+1+1+1+1+1=13字节
	unsigned char	service_status;							//a1 服务状态
	unsigned char	drawing_box1_status;					//a1一号出钞箱状态
	unsigned char	drawing_box2_status;					//a1二号出钞箱状态
	unsigned char	drawing_box3_status;					//a1三号出钞箱状态
	unsigned char	drawing_box4_status;					//a1四号出钞箱状态
	unsigned char	drawing_box5_status;					//a1五号出钞箱状态
	unsigned char	drawing_box6_status;					//a1六号出钞箱状态
	unsigned char	drawing_box7_status;					//a1七号出钞箱状态
	unsigned char	drawing_box8_status;					//a1八号出钞箱状态
	unsigned char	printer1_status;						//a1流水打印机状态
	unsigned char	printer2_status;						//a1凭条打印机状态
	unsigned char	printer3_status;						//a1结单打印机状态
	unsigned char	printer4_status;						//a1存折打印机状态
}ATM_IFORM_Equipment_server_status;							//a13设备服务状态信息

typedef struct{												//占据4+4+4+4+4+4+4+4=32字节
	unsigned char	number_of_booknotes_in_casset1[4];		//n4钞箱1张数
	unsigned char	number_of_booknotes_in_casset2[4];		//n4钞箱2张数
	unsigned char	number_of_booknotes_in_casset3[4];		//n4钞箱3张数
	unsigned char	number_of_booknotes_in_casset4[4];		//n4钞箱4张数
	unsigned char	number_of_booknotes_in_casset5[4];		//n4钞箱5张数
	unsigned char	number_of_booknotes_in_casset6[4];		//n4钞箱6张数
	unsigned char	number_of_booknotes_in_casset7[4];		//n4钞箱7张数
	unsigned char	number_of_booknotes_in_casset8[4];		//n4钞箱8张数
}ATM_IFORM_Drawing_box_status;								//ans32取款钞箱张数

typedef struct{												//占据6+12+6+12+6+12+6+6=66字节
	unsigned char	total_number_of_successful_drawing[6];	//n6成功取款笔数
	unsigned char	total_amount_of_successful_drawing[12];	//n12成功取款金额
	unsigned char	total_number_of_successful_deposit[6];	//n6成功取款笔数
	unsigned char	total_amount_of_successful_deposit[12];	//n12成功取款金额
	unsigned char	total_number_of_successful_transfer[6];	//n6成功转帐笔数
	unsigned char	total_amount_of_successful_transfer[12];//n12成功转帐金额
	unsigned char	total_number_of_expropriate_card[6];	//n6没收卡张数
	unsigned char	total_number_of_abandon[6];				//n6废钞张数 
}ATM_IFORM_Statistics_of_trade_information;					//n66交易统计信息

typedef struct{												//占据4+3+4=11字节
	unsigned char	clientele_exception_information[4];		//n4与客户有关的例外码,软件故障
	unsigned char	hardware_name[3];						//a3 硬件名称:无故障为'000'
	unsigned char	hardware_expection_code[4];				//硬件错误码;无错误为'0000'
}ATM_IFORM_Exception_information;							//an11例外信息

typedef struct{												//占据8+8=16字节
	unsigned char	sync_counter[8];						//密钥同步计数器n8
	unsigned char	message_security_code[8];				//新密钥b64
}ATM_IFORM_Security_related_control_information;			//数据安全控制信息保密代码ans16

typedef struct{
	unsigned char	Message_type_id[4];						//Message_type_identification n4
															//	0100 授权类请求消息(余额查询,改密,交易完成确认)
															//	0110 授权类应答消息(余额查询,改密,交易完成确认)
															//	0200 金融类请求消息(取款,存款,转帐)                                                 
															//	0210 金融类应答消息(取款,存款,转帐)
															//	0400 冲正类请求消息(冲正取款,冲正转帐)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -