CashWithdrawReverse
来源:互联网 发布:红旗linux证书 编辑:程序博客网 时间:2024/05/19 19:34
/* Fuction : Data_CashWithdrawalReversal_RQ * Action : CashWithdrawalReversalRequest * Input : * Output : * Author : * Date : 2014/11/06 */intData_CashWithdrawalReversal_RQ(){ EXEC SQL BEGIN DECLARE SECTION; AP_JOURNAL origjnl; char OrignSysTraceNo[6+1]; char origTranDTime[10+1]; EXEC SQL END DECLARE SECTION; char entry[ENTRY_ROW][ENTRY_COL]; int entry_count = 0; int i =0; struct S_CSTM_REVER_INFO s_cstm_rever_info[1]; char AccNum[10+1]; double tmp_tran_amt = 0.00; double tmp_tran_amt2 = 0.00; char pwd[6+1]; char pwd_enc[6+1]; char record_idx[200+1]; int ret = -1; int rellen = 0; char tmp_str[100+1]; char currtype[2+1]; char pbjourno[10+1]; char hostjourno[10+1]; char listjourno[10+1]; char trandate[8+1]; char PAccNum[99+1]; char ProcCode[6+1]; char tran_amt[12]; char tran_date_time[10+1]; char sys_trace_num[6+1]; char local_time[6+1]; char local_tran_date[4+1]; char expiry_date[4+1]; char settle_date[4+1]; char merchant_type[4+1]; char acq_ins_cou_code[3+1]; char ser_entry_mod[3+1]; char ser_cond_code[2+1]; char tran_fee[9+1]; char acq_ins_id[99+1]; char track2_data[99+1]; char retr_ref_num[12+1]; char resp_code[2+1]; char card_accp_termid[8+1]; char card_accp_id[15+1]; char card_accp_name_loc[40+1]; char tran_curr_code[3+1]; char orig_data_ele[42+1]; char origMsgType[4+1]; char origRecvInstCode[11+1]; char origSndInstCode[11+1]; char card_id[19+1]; char filename[50+1]; char filepath[128+1]; char fullfilepath[256+1]; FILE *fp = NULL; char strbuf[10240+1]; char loc_sndpkg_time[10+1]; memset(entry,0,sizeof(entry)); memset(AccNum,0,sizeof(AccNum)); memset(&s_cstm_rever_info,0x00,sizeof(s_cstm_rever_info)); memset(pwd,0,sizeof(pwd)); memset(pwd_enc,0,sizeof(pwd_enc)); memset(record_idx,0,sizeof(record_idx)); memset(tmp_str, 0x00, sizeof(tmp_str)); memset(currtype, 0x00,sizeof(currtype)); memset(pbjourno, 0x00, sizeof(pbjourno)); memset(hostjourno, 0x00, sizeof(hostjourno)); memset(listjourno, 0x00, sizeof(listjourno)); memset(trandate, 0x00, sizeof(trandate)); memset(PAccNum,0x00,sizeof(PAccNum)); memset(ProcCode,0x00,sizeof(ProcCode)); memset(tran_amt,0x00,sizeof(tran_amt)); memset(tran_date_time,0x00,sizeof(tran_date_time)); memset(sys_trace_num,0x00,sizeof(sys_trace_num)); memset(local_time,0x00,sizeof(local_time)); memset(local_tran_date,0x00,sizeof(local_tran_date)); memset(expiry_date,0x00,sizeof(expiry_date)); memset(settle_date,0x00,sizeof(settle_date)); memset(merchant_type,0x00,sizeof(merchant_type)); memset(acq_ins_cou_code,0x00,sizeof(acq_ins_cou_code)); memset(ser_entry_mod,0x00,sizeof(ser_entry_mod)); memset(ser_cond_code,0x00,sizeof(ser_cond_code)); memset(tran_fee,0x00,sizeof(tran_fee)); memset(acq_ins_id,0x00,sizeof(acq_ins_id)); memset(track2_data,0x00,sizeof(track2_data)); memset(retr_ref_num,0x00,sizeof(retr_ref_num)); memset(resp_code,0x00,sizeof(resp_code)); memset(card_accp_termid,0x00,sizeof(card_accp_termid)); memset(card_accp_id,0x00,sizeof(card_accp_id)); memset(card_accp_name_loc,0x00,sizeof(card_accp_name_loc)); memset(tran_curr_code,0x00,sizeof(tran_curr_code)); memset(orig_data_ele,0x00,sizeof(orig_data_ele)); memset(&origjnl, 0x00, sizeof(&origjnl)); memset(card_id, 0x00, sizeof(card_id)); memset(loc_sndpkg_time, 0x00, sizeof(loc_sndpkg_time)); memset(OrignSysTraceNo, 0x00, sizeof(OrignSysTraceNo)); memset(origTranDTime, 0x00, sizeof(origTranDTime)); memset(origMsgType, 0x00, sizeof(origMsgType)); memset(origRecvInstCode, 0x00, sizeof(origRecvInstCode)); memset(origSndInstCode, 0x00, sizeof(origSndInstCode)); ret = GetSndPkgTime8583(loc_sndpkg_time); if(ret==PB_ERR) { WriteLog(ERR_LVL, "生成8583报文中发报时间错误"); return PB_ERR; } WriteLog(ERR_LVL, "loc_sndpkg_time [%s]", loc_sndpkg_time); WriteLog(ERR_LVL,"========= Data_CashWithdrawalReversal_RQ[001004] begin ========="); /* Get the data */ Get_pbjourno(pbjourno,hostjourno,listjourno); GetPoolDataByName("PBSYS", "PbDate", 0, 0, trandate, &rellen ); trim(pbjourno); trim(hostjourno); trim(listjourno); trim(trandate); WriteLog(ERR_LVL,"pbjourno[%s]",pbjourno); WriteLog(ERR_LVL,"hostjourno[%s]",hostjourno); WriteLog(ERR_LVL,"listjourno[%s]",listjourno); WriteLog(ERR_LVL,"trandate[%s]",trandate); GetPoolDataByName("Bconnex8583","PAccNum",0,0,PAccNum,&rellen); GetPoolDataByName("Bconnex8583","ProcCode",0,0,ProcCode,&rellen); GetPoolDataByName("Bconnex8583","tran_amt",0,0,tran_amt,&rellen); GetPoolDataByName("Bconnex8583","tran_date_time",0,0,tran_date_time,&rellen); GetPoolDataByName("Bconnex8583","sys_trace_num",0,0,sys_trace_num,&rellen); GetPoolDataByName("Bconnex8583","local_time",0,0,local_time,&rellen); GetPoolDataByName("Bconnex8583","local_tran_date",0,0,local_tran_date,&rellen); GetPoolDataByName("Bconnex8583","expiry_date",0,0,expiry_date,&rellen); GetPoolDataByName("Bconnex8583","settle_date",0,0,settle_date,&rellen); GetPoolDataByName("Bconnex8583","merchant_type",0,0,merchant_type,&rellen); GetPoolDataByName("Bconnex8583","acq_ins_cou_code",0,0,acq_ins_cou_code,&rellen); GetPoolDataByName("Bconnex8583","ser_entry_mod",0,0,ser_entry_mod,&rellen); GetPoolDataByName("Bconnex8583","ser_cond_code",0,0,ser_cond_code,&rellen); GetPoolDataByName("Bconnex8583","tran_fee",0,0,tran_fee,&rellen); GetPoolDataByName("Bconnex8583","acq_ins_id",0,0,acq_ins_id,&rellen); GetPoolDataByName("Bconnex8583","track2_data",0,0,track2_data,&rellen); GetPoolDataByName("Bconnex8583","retr_ref_num",0,0,retr_ref_num,&rellen); GetPoolDataByName("Bconnex8583","resp_code",0,0,resp_code,&rellen); GetPoolDataByName("Bconnex8583","card_accp_termid",0,0,card_accp_termid,&rellen); GetPoolDataByName("Bconnex8583","card_accp_id",0,0,card_accp_id,&rellen); GetPoolDataByName("Bconnex8583","card_accp_name_loc",0,0,card_accp_name_loc,&rellen); GetPoolDataByName("Bconnex8583","tran_curr_code",0,0,tran_curr_code,&rellen); GetPoolDataByName("Bconnex8583","orig_data_ele",0,0,orig_data_ele,&rellen); GetPoolDataByName("Bconnex8583","tran_curr_code",0,0,tran_curr_code,&rellen); GetPoolDataByName("Bconnex8583","orig_data_ele",0,0,orig_data_ele,&rellen); PutPoolDataByName("Bconnex8583","resp_code", 0, 0, "06", 0); //如果流程出错,则为resp_code赋值 rtrim(PAccNum); rtrim(ProcCode); rtrim(tran_amt); rtrim(tran_date_time); rtrim(sys_trace_num); rtrim(local_time); rtrim(local_tran_date); rtrim(expiry_date); rtrim(settle_date); rtrim(merchant_type); rtrim(acq_ins_cou_code); rtrim(ser_entry_mod); rtrim(ser_cond_code); rtrim(tran_fee); rtrim(acq_ins_id); rtrim(track2_data); rtrim(retr_ref_num); rtrim(resp_code); rtrim(card_accp_termid); rtrim(card_accp_id); rtrim(card_accp_name_loc); rtrim(tran_curr_code); rtrim(orig_data_ele); WriteLog(ERR_LVL,"PAccNum[%s]",PAccNum); WriteLog(ERR_LVL,"ProcCode[%s]",ProcCode); WriteLog(ERR_LVL,"tran_amt[%s]",tran_amt); WriteLog(ERR_LVL,"tran_date_time[%s]",tran_date_time); WriteLog(ERR_LVL,"sys_trace_num[%s]",sys_trace_num); WriteLog(ERR_LVL,"local_time[%s]",local_time); WriteLog(ERR_LVL,"local_tran_date[%s]",local_tran_date); WriteLog(ERR_LVL,"expiry_date[%s]",expiry_date); WriteLog(ERR_LVL,"settle_date[%s]",settle_date); WriteLog(ERR_LVL,"merchant_type[%s]",merchant_type); WriteLog(ERR_LVL,"acq_ins_cou_code[%s]",acq_ins_cou_code); WriteLog(ERR_LVL,"ser_entry_mod[%s]",ser_entry_mod); WriteLog(ERR_LVL,"ser_cond_code[%s]",ser_cond_code); WriteLog(ERR_LVL,"tran_fee[%s]",tran_fee); WriteLog(ERR_LVL,"acq_ins_id[%s]",acq_ins_id); WriteLog(ERR_LVL,"track2_data[%s]",track2_data); WriteLog(ERR_LVL,"retr_ref_num[%s]",retr_ref_num); WriteLog(ERR_LVL,"resp_code[%s]",resp_code); WriteLog(ERR_LVL,"card_accp_termid[%s]",card_accp_termid); WriteLog(ERR_LVL,"card_accp_id[%s]",card_accp_id); WriteLog(ERR_LVL,"card_accp_name_loc[%s]",card_accp_name_loc); WriteLog(ERR_LVL,"tran_curr_code[%s]",tran_curr_code); WriteLog(ERR_LVL,"orig_data_ele[%s]",orig_data_ele); get_in_currtype(tran_curr_code, currtype); WriteLog(ERR_LVL, "发送到核心的币种为[%s]", currtype); memcpy(card_id, track2_data+1, 19); memcpy(origMsgType, orig_data_ele, 4); memcpy(card_id, track2_data+1, 19); memcpy(origMsgType, orig_data_ele, 4); memcpy(OrignSysTraceNo, orig_data_ele+4, 6); memcpy(origTranDTime, orig_data_ele+10, 10); memcpy(origRecvInstCode, orig_data_ele+20, 11); memcpy(origSndInstCode, orig_data_ele+31,11); WriteLog(ERR_LVL, "Original massage type is [%s]\n", origMsgType); WriteLog(ERR_LVL, "Original system trace audit number is [%s]\n", OrignSysTraceNo); WriteLog(ERR_LVL, "OrigTran date and time is [%s]", origTranDTime); WriteLog(ERR_LVL, "Original acquirer institution identification code is [%s]\n", origRecvInstCode); WriteLog(ERR_LVL, "Original forwarding institution identification code is [%s]", origSndInstCode); /**********hsm test************/ char pin_block[6+1]; char mingwen[6+1]; unsigned char pin_data[16+1]; unsigned char sPinOut2[17]; memset(pin_block,0x00,sizeof(pin_data)); memset(mingwen,0x00,sizeof(mingwen)); memset(pin_data,0x00,sizeof(pin_data)); memset(sPinOut2,0x00,sizeof(sPinOut2)); memcpy(pin_block,"111111",6); WriteLog(ERR_LVL,"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&test&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"); WriteLog(ERR_LVL,"pin_block[%s]",pin_block); ret = Data_encry_new(pin_data,card_id,pin_block); if(ret !=0) { WriteLog(ERR_LVL,"call Data_encry failed!"); Pb_ReturnClient8583("96"); return PB_ERR; } trim(pin_data); WriteLog(ERR_LVL,"pin_data=[%s]",pin_data); ret = Data_decry_new(pin_data,card_id,mingwen); if(ret !=0) { WriteLog(ERR_LVL,"call Data_decry failed!"); Pb_ReturnClient8583("96"); return PB_ERR; } trim(mingwen); WriteLog(ERR_LVL,"mingwen=[%s]",mingwen); WriteLog(ERR_LVL,"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&test&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"); /**********hsm test************/ WriteLog(ERR_LVL,"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&test&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"); /******* 密码软加密 *************/ memcpy(pwd,mingwen,6); ret = CrtCstmPwd(pwd,pwd_enc); if( ret != PB_OK ) { WriteLog( ERR_LVL ,"Err CrtCstmPwd "); Pb_ReturnClient8583("06"); return PB_ERR; } WriteLog( ERR_LVL ,"pwd[%s] pwd_enc[%s]",pwd,pwd_enc); WriteLog(ERR_LVL,"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&test&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"); /**** 查询原交易是否存在 ********/ EXEC SQL SELECT * INTO :origjnl FROM T_AP_JOURNAL WHERE rltseqno = :OrignSysTraceNo AND hststlmdtime = :origTranDTime AND transtat = '0'; if(SQLCODE!= 0) { WriteLog(ERR_LVL, "Search orignal transacation error! rltseqno[%s], hststlmdtime[%s], SQLCODE is [%d]", OrignSysTraceNo, origTranDTime, SQLCODE); return PB_ERR; } WriteLog(ERR_LVL, "select table t_ap_journal successflly! sqlcode=[%d]", SQLCODE); /******* 取出原流水金额进行转换 ******/ sscanf(origjnl.Reserve5,"%lf",&tmp_tran_amt); tmp_tran_amt = tmp_tran_amt/100; WriteLog(ERR_LVL,"tmp_tran_amt[%lf]",tmp_tran_amt); sscanf(tran_amt,"%lf",&tmp_tran_amt2); tmp_tran_amt2 = tmp_tran_amt2/100; WriteLog(ERR_LVL,"tmp_tran_amt2[%lf]",tmp_tran_amt2); trim(origjnl.TranStat); trim(origjnl.AcctNo); trim(origjnl.TranDate); trim(origjnl.SysSeqNum); WriteLog(ERR_LVL, "原交易状态为[%s]!", origjnl.TranStat); WriteLog(ERR_LVL,"原交易账号为[%s]!",origjnl.AcctNo); WriteLog(ERR_LVL,"原交易金额为[%lf]", origjnl.Reserve5); if(memcmp(origjnl.TranStat, "0", 1) !=0 ) /* 该笔交易是 成功 状态 */ { WriteLog(ERR_LVL, "原交易不符合冲正条件!"); return PB_ERR; } if( fabs(tmp_tran_amt2 - tmp_tran_amt) > ZERO_AMT ) { WriteLog(ERR_LVL, " 冲正金额和原交易金额不相等!"); return PB_ERR; } if( memcmp(origjnl.AcctNo, card_id, 19)!=0 ) { WriteLog(ERR_LVL, "冲正交易账号和原交易账号不匹配!"); return PB_ERR; } /* HostAddHead */ ret = Data_HostAddHead("5712"); if(ret !=0) { WriteLog(ERR_LVL,"HostAddHead failed!"); return PB_ERR; } /* 5712 body */ sprintf(tmp_str,"%s||%s|%lf|||%s|%s||| ",card_id,currtype,tmp_tran_amt,pwd_enc,track2_data); WriteLog(ERR_LVL,"5712 condition[%s]",tmp_str); PutPoolDataByName("FDYL","checkstr",0,0,"01111311111111111011111011100000000000000000000000000000",0); PutPoolDataByName("FDYL","condition",0,0,tmp_str,0); /* 5718 body */ PutPoolDataByName( "FDCZ", "DataFlag", 0, 0, "2" , 0 ); memcpy(card_id,track2_data+1,19); WriteLog(ERR_LVL,"card_id[%s]",card_id); sprintf( filename, "%s-%s.txt", "001004", pbjourno ); sprintf( filepath, "%s/%s/%s",getenv("INST_PATH"),getenv("INST_NO_PATH"), filename ); sprintf( fullfilepath, "%s/%s",getenv("PRINTERDIR"), filepath ); WriteLog( ERR_LVL, "filepath[%s] ", filepath ); WriteLog( ERR_LVL, "fullfilepath[%s] ", fullfilepath ); PutPoolDataByName( "FDCZ", "FileName", 0, 0, filepath , 0 ); rtrim(origjnl.AppIndex); sprintf(record_idx,"%s",origjnl.AppIndex); WriteLog( ERR_LVL ,"record_idx[%s]",record_idx); PutPoolDataByName( "FDCZ", "CorrRecordIdx", 0, 0, record_idx , 0 ); fp = fopen( fullfilepath, "w+b" ); if( NULL == fp ) { WriteLog( ERR_LVL, "Open file error![%s]",fullfilepath ); return PB_ERR; } memcpy(s_cstm_rever_info->acc_no,card_id,19); s_cstm_rever_info->tran_amt = tmp_tran_amt; s_cstm_rever_info->fee_amt = 0.00; memcpy(s_cstm_rever_info->curr_type,currtype,2); memcpy(s_cstm_rever_info->corr_flag,"1",1); memcpy(s_cstm_rever_info->corr_date,origjnl.AcctDate,10); sprintf(s_cstm_rever_info->corrseqno,"TT%s",origjnl.SysSeqNum); /* 组装上传记账分录格式 */ ret = GetReverEntry(origjnl.AcctDate,s_cstm_rever_info,entry,&entry_count); if(ret != PB_OK) { WriteLog(ERR_LVL,"Err GetJournalEntry"); Pb_ReturnClient8583("96"); return PB_ERR; } WriteLog(ERR_LVL,"entry_count[%d]",entry_count); /* 记账分录写入文件 */ for( i = 0;i<entry_count;i++) { fprintf( fp, "%s\n", entry[i] ); WriteLog(ERR_LVL,"entry[%s]",entry[i]); } sprintf( AccNum ,"%s" , &entry_count ); PutPoolDataByName( "FDCZ", "AccNum", 0, 0, AccNum , 0 ); fclose(fp); ret = Host_ftpData( filename ); if( ret !=0 ) { WriteLog(ERR_LVL,"Host_ftpData[%s] err", filename ); return PB_ERR; } WriteLog(ERR_LVL,"========= Data_CashWithdrawalReversal_RQ[001004] end ========="); return PB_OK;}/* Fuction : Data_CashWithdrawalReversal_RP * Action : CashWithdrawalReversalResponse * Input : * Output : * Author : * Date : 2014/11/06 */intData_CashWithdrawalReversal_RP(){ int ret = -1; int rellen = 0; char errcode[10+1]; char errmsg[300+1]; char out_recode[2+1]; long hoststat = -1; char rem[300+1]; char rem_str[32+1]; char trandate[8+1]; char origDataEle[42+1]; char origSysTraceNo[6+1]; char origTranTime[4+1]; memset(errcode, 0x00, sizeof(errcode)); memset(errmsg, 0x00, sizeof(errmsg)); memset(out_recode, 0x00, sizeof(out_recode)); memset(rem, 0x00, sizeof(rem)); memset(rem_str, 0x00, sizeof(rem_str)); memset(trandate, 0x00, sizeof(trandate)); memset(origDataEle, 0x00, sizeof(origDataEle)); memset(origSysTraceNo, 0x00, sizeof(origSysTraceNo)); memset(origTranTime, 0x00, sizeof(origTranTime)); /*Get The Data*/ GetPoolDataByName("ABSHEAD", "_host_stat", 0, 0, (char *)&hoststat, &rellen ); GetPoolDataByName("PBSYS", "PbDate", 0, 0, trandate, &rellen ); GetPoolDataByName("Bconnex8583", "orig_data_ele", 0, 0, origDataEle, &rellen); WriteLog(ERR_LVL, "origDataEle is [%s]", origDataEle); memcpy(origSysTraceNo, origDataEle+4, 6); memcpy(origTranTime, origDataEle+10, 10); WriteLog(ERR_LVL, "origSysTraceNo is [%s], origTranTime is [%s]", origSysTraceNo, origTranTime); WriteLog( ERR_LVL, "hoststat[%ld]", hoststat ); /* PutPoolDataByName("Bconnex8583","sys_trace_num", 0, 0, "999999", 0); */ if(hoststat==0) { WriteLog(ERR_LVL, "Transaction Success![%ld]", hoststat); ret = setFlagAfterReversal(origSysTraceNo, origTranTime); if(ret==PB_OK) { WriteLog(ERR_LVL, "update table T_AP_JOURNAL successfully!"); } Pb_ReturnClient8583("00"); WriteLog(ERR_LVL,"========= Data_CashWithdrawalReversal_RP[001004] end ========="); } else { GetPoolDataByName("ABSHEAD","_error_code",0,0,rem,&rellen); if(strlen(rem)<=32) { memcpy(rem_str,rem,strlen(rem)); } else { memcpy(rem_str,rem,32); } sscanf( rem, "[%[^]]]:%[^'']", errcode,errmsg ); trim(errcode); trim(errmsg); if(strlen(errcode)==0) { sscanf( rem, "%*[^0-9]%*[0-9]%*[^0-9]%[0-9]]:%[^'']",errcode,errmsg); trim(errcode); trim(errmsg); } WriteLog(ERR_LVL ,"errcode[%s]errmsg[%s]hoststat[%ld]",errcode,errmsg,hoststat); errcode_transform(errcode,out_recode); trim(out_recode); WriteLog(ERR_LVL, "out_recode[%s]", out_recode); Pb_ReturnClient8583(out_recode); WriteLog(ERR_LVL,"========= Data_CashWithdrawalReversal_RP[001004] end ========="); return PB_ERR; } return PB_OK;}/* Fuction : GetSndPkgTime8583 * Action : GetSndPkgTime8583 * Input : * Output : * Author : * Date : 2014/11/06 */int GetSndPkgTime8583(char *Time8583){ char DateFromPB[8+1]; char TimeFromPB[8+1]; char tmpTime[10+1]; int rellen=0; memset(DateFromPB, 0x00, sizeof(DateFromPB)); memset(TimeFromPB, 0x00, sizeof(TimeFromPB)); memset(tmpTime, 0x00, sizeof(tmpTime)); GetPoolDataByName("PBSYS", "SysDate",0, 0, DateFromPB, &rellen); GetPoolDataByName("PBSYS", "SysTime", 0, 0, TimeFromPB, &rellen); trim(DateFromPB); trim(TimeFromPB); if(strlen(DateFromPB)!=8) { WriteLog(ERR_LVL, "取PB系统日期错误\n"); return PB_ERR; } if(strlen(TimeFromPB)!=6 && strlen(TimeFromPB)!=8) { WriteLog(ERR_LVL, "取PB系统时间错误\n"); return PB_ERR; } WriteLog(ERR_LVL, "DateFromPB is [%s], TimeFromPB is [%s]", DateFromPB, TimeFromPB); memcpy(tmpTime, DateFromPB+4, 4); memcpy(tmpTime+4, TimeFromPB,2); if(strlen(TimeFromPB)==6) { memcpy(tmpTime+6, TimeFromPB+2, 2); memcpy(tmpTime+8, TimeFromPB+4, 2); } if(strlen(TimeFromPB)==8) { memcpy(tmpTime+6, TimeFromPB+3, 2); memcpy(tmpTime+8, TimeFromPB+6, 2); } memcpy(Time8583, tmpTime, 10); WriteLog(ERR_LVL, "8385报文的发送时间为 [%s]", tmpTime); return PB_OK;}/*Fuction : Get Retrieval Reference Number* Action : GetRetReferNumber* Input :* Output :* Author :* Date : 2014/12/01*/int GetRetReferNumber(char * RetReferNumber){ int rellen=0; char SysTraceNumber[6+1]; char Pkg007[10+1]; int DayOfDate; char PBDate[8+1]; char LastBitYear[1+1]; char tmpHH[2+1]; memset(SysTraceNumber, 0x00, sizeof(SysTraceNumber)); memset(Pkg007, 0x00, sizeof(Pkg007)); memset(PBDate, 0x00, sizeof(PBDate)); memset(LastBitYear,0x00, sizeof(LastBitYear)); memset(tmpHH, 0x00, sizeof(tmpHH)); memcpy(SysTraceNumber, "998998",6); GetSndPkgTime8583(Pkg007); memcpy(tmpHH, Pkg007+4, 2); GetPoolDataByName("PBSYS", "SysDate",0, 0, PBDate, &rellen); //DayOfDate = GetdaysBydate(PBDate); memcpy(LastBitYear, PBDate+3, 1); sprintf(RetReferNumber, "%s%03d%s%s",LastBitYear, DayOfDate, tmpHH, SysTraceNumber); WriteLog(ERR_LVL, "生成8583报文中的第37域(检索索引号)为 [%s]", RetReferNumber); return PB_OK; }int setFlagAfterReversal(char *para_origTraceNo, char *para_origTime){ EXEC SQL BEGIN DECLARE SECTION; char origSysTraceNo[6+1]; char origDateTime[10+1]; EXEC SQL END DECLARE SECTION; memset(origSysTraceNo, 0x00, sizeof(origSysTraceNo)); memset(origDateTime, 0x00, sizeof(origDateTime)); if(para_origTraceNo==NULL || strlen(para_origTraceNo)!=6 || para_origTime==NULL || strlen(para_origTime)!=10) { WriteLog(ERR_LVL, "参数错误! para_origTraceNo[%s], para_origTime[%s]", para_origTraceNo, para_origTime); return PB_ERR; } memcpy(origSysTraceNo, para_origTraceNo, 6); memcpy(origDateTime, para_origTime, 10); WriteLog(ERR_LVL, "origSysTraceNo=[%s], origDateTime=[%s]", origSysTraceNo, origDateTime); EXEC SQL UPDATE T_AP_JOURNAL SET TRANSTAT='9' WHERE rltseqno =:origSysTraceNo and hststlmdtime=:origDateTime and transtat='0'; if(SQLCODE !=0 || sqlca.sqlerrd[2] != 1) { WriteLog(ERR_LVL, "update table T_AP_JOURNAL fail! SQLCODE=[%d], sqlca.sqlerrd[2]=[%d]", SQLCODE, sqlca.sqlerrd[2]); return PB_ERR; } WriteLog(ERR_LVL, "successfully! SQLCODE=[%d]! sqlerrd[2]=[%d]", SQLCODE, sqlca.sqlerrd[2]); return PB_OK;}
0 0
- CashWithdrawReverse
- Redis学习6-有序集合(soted set /zset)
- y400 实现grub2 引导 win8.1 和 ubuntu12.04 双系统 时间校准
- Android性能优化典范
- Web前端开发之EasyUI
- iOS开发证书在多台机器上使用
- CashWithdrawReverse
- BUG之旅-MessageBox,Domodal不能显示对话框
- 代码的组织和部署
- python之email
- Android好奇宝宝_11_SwipeRefreshLayout原理浅析
- swift(2)
- java 判断字符串中是否包含汉字
- C#(64位系统) 解决"未能加载文件或程序集,或它的某一个依赖项..."
- Redis学习7--HyperLogLog