int F930057(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { // writelog(LOG_DEBUG, "设备%s发送心跳",rPack->sdate1); // CAccTrans *pAccTrans=CAccTrans::getInstance(); // GetCpackDataString(rPack,pAccTrans->cpackdata); // writelog(LOG_INFO,"cpack:[%s]",pAccTrans->cpackdata); char devphyid[31]=""; int ret=0; T_t_devmonitor devmonitor; memset(&devmonitor,0,sizeof(devmonitor)); devmonitor.deviceid=atoi(rPack->sorder2); if(devmonitor.deviceid<1) { des2src(devphyid, rPack->sdate1); ret = GetDevIdByDevPhyId(&(devmonitor.deviceid),devphyid); if(0 != ret) { writelog(LOG_ERR,"devphyid:%s",devphyid); return ret; } } /*得到CPACK数据*/ des2src(devmonitor.optime,rPack->sphone3); getsystimestamp(devmonitor.coltime); devmonitor.beatstatus=rPack->lvol2; des2src(devmonitor.cardverno,rPack->sserial4); devmonitor.hardiskper=rPack->damt0; devmonitor.memoryper=rPack->damt1; devmonitor.cpuper=rPack->damt2; des2src(devmonitor.devtime,rPack->sholder_ac_no2); ret=DB_t_devmonitor_update_by_deviceid(devmonitor.deviceid,&devmonitor); if(ret) { if(DB_NOTFOUND==ret) { //设备心跳记录不存在(初始化时),则进行插入操作 SQLCODE=0; ret=DB_t_devmonitor_add(&devmonitor); if(ret) { return E_DB_DEVMONITOR_I; } return 0; } else { return E_DB_DEVMONITOR_U; } } return 0; }
int F930033(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; T_t_tif_rcvdtl tRcvdtl; /* ret=chk_dyn_key(rPack->lcert_code,rPack->scust_limit2); if(ret) { writelog(LOG_ERR,"subsys_id[%d]dyn_key[%s]",rPack->lcert_code,rPack->scust_limit2); *pRetCode = ret; goto L_RETU; } */ memset(&tRcvdtl,0,sizeof(tRcvdtl)); tRcvdtl.serial_no= rPack->lvol4; //上传端流水号 tRcvdtl.tx_mark=rPack->lvol12; //999交易标记 tRcvdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) des2src(tRcvdtl.deviceid, rPack->sdate1); //物理设备ID des2src(tRcvdtl.inpower_no,rPack->stx_pwd); //终端设备授权号 // tRcvdtl.comu_ver=rPack->lbank_acc_type; //通信版本号 // tRcvdtl.run_reason = rPack->lbank_acc_type2; //启动原因 des2src(tRcvdtl.crc,rPack->sbank_code2); //CRC校验 tRcvdtl.cardno= rPack->lvol5; //交易卡号 tRcvdtl.purse_no = rPack->lvol6; //消费钱包号 tRcvdtl.in_bala= rPack->lvol9; //入卡金额 tRcvdtl.out_bala = rPack->lvol10; //出卡金额 tRcvdtl.amount = rPack->lvol8; //本次消费金额 tRcvdtl.total_cnt= rPack->lvol7; //当前卡中帐户消费次数(累计使用次数) tRcvdtl.tx_code = 930033; //交易代码 snprintf(tRcvdtl.tx_date,9,"20%s",rPack->spost_code); //发生日期(格式化输入的日期) des2src(tRcvdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) tRcvdtl.fee_code = rPack->lvol11; //补助批次号 getsystimestamp(tRcvdtl.col_timestamp); tRcvdtl.status[0]='1'; ret = DB_t_tif_rcvdtl_add(&tRcvdtl); if (ret) { writelog(LOG_ERR,"DB_t_tif_rcvdtl_add ret[%d]",ret); if(DB_REPEAT==ret) return 0; else *pRetCode = E_DB_TRADESERIAL_I; goto L_RETU; } return 0; L_RETU: //回滚事务 return -1; }
int F950031(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; int in_balance = 0; int out_balance = 0; int man_fee = 0; int trade_fee = 0; T_t_tif_rcvdtl tRcvdtl; memset(&tRcvdtl,0,sizeof(tRcvdtl)); tRcvdtl.serial_no= rPack->lvol4; //上传端流水号 tRcvdtl.tx_mark=rPack->lvol12; //999交易标记 tRcvdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) des2src(tRcvdtl.device_id, rPack->sdate1); //物理设备ID des2src(tRcvdtl.inpower_no,rPack->stx_pwd); //终端设备授权号 tRcvdtl.comu_ver=rPack->lbank_acc_type; //通信版本号 int ver = tRcvdtl.comu_ver / 10; if( 0x81 == tRcvdtl.comu_ver || 0x81 == ver ) { // tRcvdtl.run_reason = rPack->lbank_acc_type2; //启动原因 tRcvdtl.fee_code = rPack->lbank_acc_type2; // 将启动原因保存到收费科目中 } else { tRcvdtl.fee_code = 0; } des2src(tRcvdtl.crc,rPack->sbank_code2); //CRC校验 in_balance = rPack->lvol9; //入卡金额 out_balance = rPack->lvol10; //出卡金额 man_fee = rPack->lvol1; //为负数 trade_fee = rPack->lvol8; //本次消费金额 tRcvdtl.in_bala = in_balance; tRcvdtl.out_bala = out_balance; tRcvdtl.amount = trade_fee; //tRcvdtl.manage_fee = man_fee; tRcvdtl.card_no= rPack->lvol5; //交易卡号 tRcvdtl.purse_no = rPack->lvol6; //消费钱包号 tRcvdtl.total_cnt= rPack->lvol7; //当前卡中帐户消费次数(累计使用次数) tRcvdtl.tx_code = 930031; //交易代码 snprintf(tRcvdtl.tx_date,9,"20%s",rPack->spost_code); //发生日期(格式化输入的日期) des2src(tRcvdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsystimestamp(tRcvdtl.col_timestamp); ret=check(&tRcvdtl); if(ret) { tRcvdtl.err_code=ret; if(tRcvdtl.tx_mark==2) tRcvdtl.status[0]='6'; //中途拔卡交易 else { tRcvdtl.status[0]='5'; //无效交易 strncpy(tRcvdtl.deal_date,tRcvdtl.col_timestamp,8); strncpy(tRcvdtl.deal_time,tRcvdtl.col_timestamp+8,6); } } else tRcvdtl.status[0]='1'; g_dbchkerr=0; ret = DB_t_tif_rcvdtl_add(&tRcvdtl); g_dbchkerr=1; if (ret) { writelog(LOG_DEBUG,"serial_no[%d]card_no[%d]device_id[%s]tx_date[%s]tx_time[%s]",tRcvdtl.serial_no,tRcvdtl.card_no,tRcvdtl.device_id,tRcvdtl.tx_date,tRcvdtl.tx_time); if(DB_REPEAT==ret) return 0; else *pRetCode = E_DB_TRADESERIAL_I; goto L_RETU; } return 0; L_RETU: return -1; }
int F930030(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret = 0; T_t_tif_rcvdtl tRcvdtl; memset(&tRcvdtl, 0, sizeof(tRcvdtl)); tRcvdtl.serial_no = rPack->lvol4; //上传端流水号 tRcvdtl.tx_mark = rPack->lvol12; //999交易标记 tRcvdtl.sys_id = rPack->lcert_code; //上传工作站标识 des2src(tRcvdtl.deviceid, rPack->sdate1); //物理设备ID des2src(tRcvdtl.inpower_no, rPack->stx_pwd); //终端设备授权号 tRcvdtl.comu_ver = rPack->lbank_acc_type; //通信版本号 int ver = tRcvdtl.comu_ver / 10; if (0x81 == tRcvdtl.comu_ver || 0x81 == ver) tRcvdtl.fee_code = rPack->lbank_acc_type2; else tRcvdtl.fee_code = 0; des2src(tRcvdtl.crc, rPack->sbank_code2); //CRC效验 tRcvdtl.cardno = rPack->lvol5; //交易卡号 tRcvdtl.purse_no = rPack->lvol6; //消费钱包号 tRcvdtl.in_bala = rPack->lvol9; //入卡金额 tRcvdtl.out_bala = rPack->lvol10; //出卡金额 tRcvdtl.amount = rPack->lvol8; //本次消费金额 tRcvdtl.total_cnt = rPack->lvol7; //当前卡中帐户消费次数 tRcvdtl.tx_code = 930030; //交易代码 snprintf(tRcvdtl.tx_date, 9, "20%s", rPack->spost_code);//发生日期(格式化输入的日期) des2src(tRcvdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsystimestamp(tRcvdtl.col_timestamp); ret = check(&tRcvdtl); if (ret) { tRcvdtl.err_code = ret; if (2 == tRcvdtl.tx_mark) tRcvdtl.status[0] = '6'; //中途拔卡 else { tRcvdtl.status[0] = '5'; strncpy(tRcvdtl.deal_date, tRcvdtl.col_timestamp, 8); strncpy(tRcvdtl.deal_time, tRcvdtl.col_timestamp + 8, 6); } } else tRcvdtl.status[0] = '1'; g_dbchkerr = 0; ret = DB_t_tif_rcvdtl_add(&tRcvdtl); if (ret) { g_dbchkerr = 1; writelog(LOG_DEBUG,"serial_no[%d]cardno[%d]deviceid[%s]tx_date[%s]tx_time[%s]",tRcvdtl.serial_no,tRcvdtl.cardno,tRcvdtl.deviceid,tRcvdtl.tx_date,tRcvdtl.tx_time); if (DB_REPEAT == ret) return 0; else *pRetCode = E_DB_TRADESERIAL_I; goto L_RETU; } g_dbchkerr = 1; return 0; L_RETU: return -1; }