📄 ic_card.h
字号:
#ifndef _IC_CARD_H#define _IC_CARD_Htypedef struct{ char cla[3]; char ins[3]; char p1[3]; char p2[3]; char p3[3]; char data[256];} stAPDU;typedef struct{ char bank_id[9]; // 发卡方标识 char card_no[11]; // 卡片应用序列号 char random[9]; //4 伪随机数 char mac_index[2]; // 密钥索引号 char mac_version[2]; // 密钥版本号 char trade_no[5]; //2 钱包联机交易序号 char balance[9]; //3 钱包余额 char amount[5]; // 交易金额 char overdraft[7]; // 透支限额 char city_id[9]; // 城市标识 char term_no[7]; // 终端机编号 char consumer_id[9]; char arith_no[2]; // 算法标识 char mac1[5]; // MAC1 char term_tradetime[4];// 终端交易计数器 char tradeday[5]; // 交易日期 char tradetime[4]; // 交易时间 char tac[5]; // TAC}stMACDATA;#ifndef TRUE #define TRUE 1#endif#ifndef FALSE #define FALSE 0#endif#define ARRLENGTH 20#define ABS_RECORD 0x04#define uchar unsigned charint ICOpenCom();int ICCloseCom();int ICPowerOn();int ReadAccount(stMACDATA *pst);void GetICSWErrMsg(unsigned int SW);short PbocGetResponse(char *ICRecvbuf, unsigned int datalen,char *SW);short CheckSW(char *pSW);short SendICCommand(char *ICSendbuf, char *ICRecvbuf, char *ICSW);int SendICC(char *ICSendbuf, int sendlen, char *ICRecvbuf, char *ICSW);short int SendCmd(unsigned char *pszCmd, unsigned char ucLgcmd, unsigned char *szRep, unsigned char *ucLgRep);int PbocICSelect(char *file_id, int filelen, unsigned char *recvbuf);int PbocSelectPboc(stMACDATA *pst/*char *Account*/);short PbocReadRecord(char head, short readmode, short sfi, short recno, short reclen, char *recvbuf);short PbocReadBinary(char head, short sfi, short offset, short readlen, char *recvbuf);int GetInfo(char *recvbuf, stMACDATA *pst);int PbocVerify(char *pin, int pinlen, char *TimesLeft);int PbocGetBalance(unsigned char mode, char *balance);int PbocSelectPbocForSam(stMACDATA *pst);int GetCardInfo(char *recvbuf, stMACDATA *pst);int PsamForMac1(stMACDATA *pst);int PbocSelectPsam(stMACDATA *pst);int PsamForPurchase(stMACDATA *pst);int PbocSelectCDF(stMACDATA *pst);int PbocSelectADF(stMACDATA *pst);int PbocPsamSelect(char *file_id, int filelen, unsigned char *recvbuf);int PbocInitForPurchase(unsigned char mode, char *trademoney,char *terminalNo,stMACDATA *pstmacdata);int PsamCreatMac1(stMACDATA pstmacdata,char *mac1,char *term_tradeno,char *trademoney,char *tradeday,char *tradetime);int PbocCreditPurchase(unsigned char mode, char *trademoney,char *mac1,char *mac2,char *term_tradeno,stMACDATA *pstmacdata,char *tradeday,char *tradetime);int PsamVerifyMac2(char *mac2);short PsamReadRecord(char head, short readmode, short sfi, short recno, short reclen, char *recvbuf);int GetSamInfo(char *recvbuf, stMACDATA *pstmacdata);int PbocInitForLoad(unsigned char mode, char *trademoney,stMACDATA *pstmacdata);int PbocCreditForLoad(unsigned char mode, char *tradeday,char *tradetime,char *mac2);int Dec2Hex(char *dec,char *hex);int Dec2HexChar(int j);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -