//应用初始化操作入口,与设备无关的其他应用参数等等初始化,只执行一次; int AIE_Init_Application() 可以放到 int EvdIFunc_OnActive(void * pParam)里面 (qmf) 或者放到最开始的 main函数里面 , (移机)
例如移机程序,main->AIE_Init_Application
//应用初始化操作入口,与设备无关的其他应用参数等等初始化,只执行一次; int AIE_Init_Application() { ISO8583_Init(); CUP_Init_SystemParam(); return (BRANCH_EXIT); }
CUP_Init_Application
{ char buf[32] = {0}; init_batch(); //VAL="555577557052000000000044440000000000000555555104440004443355441111" //刷卡模式控制 mode_buf[NF_Get_Env("#MODE", mode_buf, MAX_TRANS_NUM)] = '\0'; // VAL="111111111111111111111111111111111111111111111111111111111111111111" //交易参数控制 tran_buf[NF_Get_Env("#TRAN", tran_buf, MAX_TRANS_NUM)] = '\0'; //VAL="100110110010000000000001110000000000000111110011111111111011101000" //密码输入控制 pass_buf[NF_Get_Env("#PASS", pass_buf, MAX_TRANS_NUM)] = '\0'; //VAL="111111111110011111111101111111111111111111111111111111111111111111" //联机交易控制 online_buf[NF_Get_Env("#ONLINE", online_buf, MAX_TRANS_NUM)] = '\0'; if(strlen(mode_buf) != MAX_TRANS_NUM || strlen(tran_buf) != MAX_TRANS_NUM || strlen(pass_buf) != MAX_TRANS_NUM || strlen(online_buf) != MAX_TRANS_NUM) { //出错了,做一些处理 } //预授权完成模式 buf[NF_Get_Env("#PRE_SALE_MODE", buf, 1)] = 0; if(buf[0] == '0') { tran_buf[PRE_AUTH_SALE_OFFLINE] = '1'; tran_buf[PRE_AUTH_SALE] = '1'; } else if(buf[0] == '1') { tran_buf[PRE_AUTH_SALE] = '1'; tran_buf[PRE_AUTH_SALE_OFFLINE] = '0'; } else if(buf[0] == '2') { tran_buf[PRE_AUTH_SALE] = '0'; tran_buf[PRE_AUTH_SALE_OFFLINE] = '1'; } Debug("tran_buf=%s", tran_buf); NF_Put_Env("#TRAN", tran_buf, MAX_TRANS_NUM); load_oper(); load_sup(); load_sys_env(); card_swiped = 0; EC_Tran_Flag = 0; glMobileChipFlag = 0; /* 安全密码, 收单行和发卡行中文名称的环境变量如果不存在则设置一个初始的默认值 */ if(NF_Get_Env("#SAFEPWD", buf, 6) < 6) { NF_Put_Env("#SAFEPWD", "888888", 6); } if(NF_Get_Env("#CHNISSUER", buf, 1) < 1) //发卡行默认打印名称 { NF_Put_Env("#CHNISSUER", "1", 1); } if(NF_Get_Env("#CHNACCQ", buf, 1) < 1) //收单行默认打印代码 { NF_Put_Env("#CHNACCQ", "0", 1); } }