📄 proc2.ec
字号:
packet_47ap[8]=tx_time[5]<<4|0x01; /** ??? **/ s_compress(tb_wtdwb.jzjydm,packet_47ap+10,4);/*trancode*/ s_compress(gyh,packet_47ap+12,4);/*记录号*/ s_compress(gyh,packet_47ap+14,4);/*授权号*/ packet_47ap[17]=0xf0;/*所号*/ for (i=0;i<3;i++) packet_47ap[18+i]=0xf0+(gyh[i]&0x0f);/*所号*/ if(strcmp(tb_wtdwb.jzjydm,"1513")==0)/*活期续存*/ { /*帐号*/ strcpy(packet_47ap+27,tb_wtdwb.zh,12); AtoE(packet_47ap+27,packet_47ap+27,12); packet_47ap[39]=0x7b; /*金额*/ sprintf(ljwjzje,"%-12.0f",tb_wtdwb.ljwjzje*100); len=strlen(ljwjzje); i=0; while(ljwjzje[i++]!=' '); ljwjzje[i-1]=0; len=strlen(ljwjzje); AtoE(packet_47ap+40,ljwjzje,len); packet_47ap[40+len]=0x4e; packet_47ap[40+len+1]=0x57;/*摘要*/ strcpy(packet_47ap+40+len+2,ymd1,6); AtoE(packet_47ap+40+len+2,packet_47ap+40+len+2,6); packet_47ap[40+len+8]=0x53;/*起息日*/ packet_47ap[40+len+9]=0x7f;/*授权号*/ packet_47ap[40+len+10]=0xff; len=40+len+11; err_jnl ("snd_ap", packet_47ap,len); } else if(strcmp(tb_wtdwb.jzjydm,"3103")==0)/*牡丹卡续存*/ { /*卡号*/ tb_wtdwb.zh[3]='0'; tb_wtdwb.zh[4]=tb_wtdwb.zh[0]; AtoE(packet_47ap+27,tb_wtdwb.zh+3,13); packet_47ap[40]=0x7b; /*金额*/ sprintf(ljwjzje,"%-12.0f",tb_wtdwb.ljwjzje*100); len=strlen(ljwjzje); i=0; while(ljwjzje[i++]!=' '); ljwjzje[i-1]=0; len=strlen(ljwjzje); AtoE(packet_47ap+41,ljwjzje,len); packet_47ap[41+len]=0x4e; packet_47ap[41+len+1]=0x57;/*摘要*/ packet_47ap[41+len+2]=0x5d;/*卡序列号*/ packet_47ap[41+len+3]=0xff; len=41+len+4; err_jnl ("snd_ap", packet_47ap,len); } }/*continue;*/ if(snd_queue(qap,28,packet_47ap,len)<0)/*send request packet to ES9000*/ { printf("%ssnd_queue error\n",tb_wtdwb.dwmc); return(3); } QueType=38; while(1) { len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet from ES9000*/ if (len<0) { printf("%srcv_queue error\n",tb_wtdwb.dwmc); return(3); } err_jnl ("reply_ap", reply_ap,len); if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/ break; /*to check the transaction succeeds or fails*/ len=0; if(reply_ap[2]==0x0f)/*error packet returned from 9000*/ { while(reply_ap[7+len]!=0x0f) { memcpy(message+len,reply_ap+7+len,1); len++; } memcpy(message+len,reply_ap+7+len,1); message[len+1]=0x0; sna2a(message,message); if(result==0)/*first fail record*/ { strcpy(msg->temp,tb_wtdwb.dwmc); strcat(msg->temp,message); result=2; } else { strcat(msg->temp,tb_wtdwb.dwmc); strcat(msg->temp,message); } printf("%s %s\n",tb_wtdwb.dwmc,message); } else/*该单位入帐成功*/ { $update wtdwb set jzbz="1" where dwdm=$tb_wtdwb.dwdm; if(sqlca.sqlcode!=0) printf("%s修改进帐标志失败(大机入帐成功)\n",tb_wtdwb.dwdm); fprintf(fp,"\n\n单位代码:%s\n",tb_wtdwb.dwdm); fprintf(fp,"单位名称:%s\n",tb_wtdwb.dwmc); fprintf(fp,"单位帐号:%s\n",tb_wtdwb.zh); fprintf(fp,"交易代码:%s\n",tb_wtdwb.jzjydm); fprintf(fp,"金额:%-12.2f\n",tb_wtdwb.ljwjzje); fprintf(fp,"日期:%s\n",ymd); fprintf(fp,"大机柜员:%s\n",gyh); fprintf(fp,"操作员:%s\n",msg->teller); } }/*end while*/ }/*end while*/ $close p_cur; $free p_cur; fclose(fp); if(result==2) return(3); memcpy(msg->rc,PATR_OK,2); return(3); case 4:/*对公签退*/ memcpy(msg->rc,PATR_OK,2); return(1); case 5:/*储蓄签退*/ s_compress("0122",packet_47ap+10,4);/*trancode*/ /*construct time*/ time(&now_second); his = *(localtime(&now_second)); sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec); if(his.tm_year>=100) sprintf(ymd,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday); else sprintf(ymd,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday); packet_47ap[5]=tx_time[0]&0x0f; packet_47ap[6]=tx_time[1]<<4|tx_time[2]&0x0f; packet_47ap[7]=tx_time[3]<<4|tx_time[4]&0x0f; packet_47ap[8]=tx_time[5]<<4|0x01; /** ??? **/ s_compress(gyh,packet_47ap+12,4);/*记录号*/ s_compress(gyh,packet_47ap+14,4);/*授权号*/ packet_47ap[17]=0xf0;/*所号*/ for (i=0;i<3;i++) packet_47ap[18+i]=0xf0+(gyh[i]&0x0f);/*所号*/ AtoE(packet_47ap+27,msg->temp,5);/*操作员号*/ packet_47ap[32]=0x6f; AtoE(packet_47ap+33,msg->temp+5,4);/*记录号*/ packet_47ap[37]=0x59; packet_47ap[38]=0xff; err_jnl ("签退:snd_ap", packet_47ap,39); memcpy(msg->rc,PATR_INSERT,2);/*fail*/ if(snd_queue(qap,28,packet_47ap,39)<0)/*send request packet to ES9000*/ { printf("储蓄签退请求失败\n"); return(1); } QueType=38; while(1) { len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet from ES9000*/ if (len<0) { printf("储蓄签退应答失败\n"); return(1); } err_jnl ("reply_ap", reply_ap,len); if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/ break; /*to check the transaction succeeds or fails*/ len=0; if(reply_ap[2]==0x0f)/*error packet returned from 9000*/ { while(reply_ap[7+len]!=0x0f) { memcpy(message+len,reply_ap+7+len,1); len++; } memcpy(message+len,reply_ap+7+len,1); message[len+1]=0x0; sna2a(message,message); strcpy(msg->temp,message); printf("%s\n",message); } else result=1;/*success*/ }/*end while*/ if(result==0)/*fail*/ { printf("储蓄签退失败\n"); return(1); } printf("签退成功\n"); memcpy(msg->rc,PATR_OK,2); return(1); break; case 6:/*修改对公密码*/ memcpy(msg->rc,PATR_OK,2); return(1); case 7:/*修改储蓄密码*/ s_compress("0191",packet_47ap+10,4);/*trancode*/ /*construct time*/ time(&now_second); his = *(localtime(&now_second)); sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec); if(his.tm_year>=100) sprintf(ymd,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday); else sprintf(ymd,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday); packet_47ap[5]=tx_time[0]&0x0f; packet_47ap[6]=tx_time[1]<<4|tx_time[2]&0x0f; packet_47ap[7]=tx_time[3]<<4|tx_time[4]&0x0f; packet_47ap[8]=tx_time[5]<<4|0x01; /** ??? **/ s_compress(gyh,packet_47ap+12,4);/*记录号*/ s_compress(gyh,packet_47ap+14,4);/*授权号*/ packet_47ap[17]=0xf0;/*所号*/ for (i=0;i<3;i++) packet_47ap[18+i]=0xf0+(gyh[i]&0x0f);/*所号*/ AtoE(packet_47ap+27,msg->temp,5);/*操作员号*/ packet_47ap[32]=0x6f; AtoE(packet_47ap+33,msg->temp+5,6);/*原密码*/ packet_47ap[39]=0x62; AtoE(packet_47ap+40,msg->temp+11,6);/*新密码*/ packet_47ap[46]=0x53; packet_47ap[47]=0xff; err_jnl ("修改密码:snd_ap", packet_47ap,48); memcpy(msg->rc,PATR_INSERT,2);/*fail*/ if(snd_queue(qap,28,packet_47ap,48)<0)/*send request packet to ES9000*/ { printf("储蓄修改密码请求失败\n"); return(1); } QueType=38; while(1) { len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet from ES9000*/ if (len<0) { printf("储蓄修改密码应答失败\n"); return(1); } err_jnl ("reply_ap", reply_ap,len); if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/ break; /*to check the transaction succeeds or fails*/ len=0; if(reply_ap[2]==0x0f)/*error packet returned from 9000*/ { while(reply_ap[7+len]!=0x0f) { memcpy(message+len,reply_ap+7+len,1); len++; } memcpy(message+len,reply_ap+7+len,1); message[len+1]=0x0; sna2a(message,message); strcpy(msg->temp,message); printf("%s\n",message); } else result=1;/*success*/ }/*end while*/ if(result==0)/*fail*/ { printf("储蓄修改密码失败\n"); return(1); } printf("修改密码成功\n"); memcpy(msg->rc,PATR_OK,2); return(1); break; case 8:/*补登存折*/ memcpy(msg->rc,PATR_OK,2); return(1); case 9:/*4700测试包*/ memcpy(msg->rc,PATR_INSERT,2);/*fail*/ memcpy(packet_47ap,"\xe2\xe6\xc9\xe3",4);/*SWIT*/ memcpy(packet_47ap,"\xd5\xc3\xc4\xd3",4);/*NCDL*/ memcpy(packet_47ap,"\xc8\xc3\xc4\xd3",4);/*HCDL*/ s_compress(gyh,packet_47ap+12,4);/*记录号*/ s_compress(gyh,packet_47ap+14,4);/*授权号*/ packet_47ap[17]=0xf0;/*所号*/ for (i=0;i<3;i++) packet_47ap[18+i]=0xf0+(gyh[i]&0x0f);/*所号*/ s_compress("0713",packet_47ap+10,4);/*trancode*/ /*construct time*/ time(&now_second); his = *(localtime(&now_second)); sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec); if(his.tm_year>=100) sprintf(ymd,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday); else sprintf(ymd,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday); packet_47ap[5]=tx_time[0]&0x0f; packet_47ap[6]=tx_time[1]<<4|tx_time[2]&0x0f; packet_47ap[7]=tx_time[3]<<4|tx_time[4]&0x0f; packet_47ap[8]=tx_time[5]<<4|0x01; /** ??? **/ AtoE(packet_47ap+27,"TCZFT",5);/*wzrxm*/ packet_47ap[32]=0x21; AtoE(packet_47ap+33,"001001",6);/*fkdm*/ packet_47ap[39]=0x62; AtoE(packet_47ap+40,"990203",6);/*jzrq*/ packet_47ap[46]=0x59; AtoE(packet_47ap+47,"0101",4);/*jjdh*/ packet_47ap[51]=0x52; AtoE(packet_47ap+52,"12345678",8);/*zkzh*/ packet_47ap[60]=0x53; packet_47ap[61]=0xff; err_jnl ("snd_ap", packet_47ap,62); if(snd_queue(qap,28,packet_47ap,62)<0)/*send request packet to ES9000*/ { printf("储蓄签到请求失败\n"); return(1); } QueType=38; while(1) { len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet from ES9000*/ if (len<0) { printf("储蓄签到应答失败\n"); return(1); } err_jnl ("reply_ap", reply_ap,len); if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/ break; /*to check the transaction succeeds or fails*/ len=0; if(reply_ap[2]==0x0f)/*error packet returned from 9000*/ { while(reply_ap[7+len]!=0x0f) { memcpy(message+len,reply_ap+7+len,1); len++; } memcpy(message+len,reply_ap+7+len,1); message[len+1]=0x0; sna2a(message,message); strcpy(msg->temp,message); printf("%s\n",message); } else result=1;/*success*/ }/*end while*/ if(result==0)/*fail*/ { printf("储蓄签到失败\n"); return(1); } printf("签到成功\n"); memcpy(msg->rc,PATR_OK,2); return(1); break; case 10:/* ac 4700测试包*/ memcpy(msg->rc,PATR_INSERT,2);/*fail*/ memcpy(packet_47ap,"\xe2\xe6\xc9\xe3",4);/*SWIT*/ memcpy(packet_47ap,"\xc8\xc3\xc4\xd3",4);/*HCDL*/ memcpy(packet_47ap,"\xd5\xc3\xc4\xd3",4);/*NCDL*/ s_compress(gyh,packet_47ap+12,4);/*记录号*/ s_compress(gyh,packet_47ap+14,4);/*授权号*/ s_compress("0704",packet_47ap+10,4);/*trancode*/ /*construct time*/ time(&now_second); his = *(localtime(&now_second)); sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec); if(his.tm_year>=100) sprintf(ymd,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday); else sprintf(ymd,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday); s_compress(tx_time,packet_47ap+5,6);/*trancode*/ packet_47ap[4]=0xf1; packet_47ap[8]=0xf8; packet_47ap[9]=0xf9; packet_47ap[16]=0xe0; packet_47ap[17]=0xf0; packet_47ap[18]=0x40;s_buf=packet_47ap;s_buf[19]='\0';memcpy(buf_s,"0010018888",10); /* pzh */AtoE(buf_s,buf_s,10);strcat(s_buf,buf_s);strcat(s_buf,"\x50");memcpy(buf_s,"1234567811",10); /* dwzh */AtoE(buf_s,buf_s,10);strcat(s_buf,buf_s);strcat(s_buf,"\x50");memcpy(buf_s,"\x0e\x5c\x74\x5c\x74\x5c\x74\x0f\0",9);/* dwmc */strcat(s_buf,buf_s);strcat(s_buf,"\x21");memcpy(buf_s,"01",2); /* zy */AtoE(buf_s,buf_s,2);strcat(s_buf,buf_s);strcat(s_buf,"\x50");memcpy(buf_s,"12381",5); /* sfxm */AtoE(buf_s,buf_s,5);strcat(s_buf,buf_s);strcat(s_buf,"\x50");memcpy(buf_s,"180905",6); /* sfje */AtoE(buf_s,buf_s,6);strcat(s_buf,buf_s);strcat(s_buf,"\x53");memcpy(buf_s,"12345",5); /* sfxm */AtoE(buf_s,buf_s,5);strcat(s_buf,buf_s);strcat(s_buf,"\x50");memcpy(buf_s,"100905",6); /* sfje */AtoE(buf_s,buf_s,6);strcat(s_buf,buf_s);strcat(s_buf,"\x53");strcat(s_buf,"\x50");strcat(s_buf,"\x53");strcat(s_buf,"\x50");strcat(s_buf,"\x53");memcpy(buf_s,"98095",5); /* gyh */AtoE(buf_s,buf_s,5);strcat(s_buf,buf_s);strcat(s_buf,"\x53");strcat(s_buf,"\xff\0"); err_jnl ("snd_ap", packet_47ap,strlen(packet_47ap)); if(snd_queue(qap,28,packet_47ap,strlen(packet_47ap))<0)/*send request packet to ES9000*/ { printf("储蓄签到请求失败\n"); return(1); } QueType=38; while(1) { len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet from ES9000*/ if (len<0) { printf("储蓄签到应答失败\n"); return(1); } err_jnl ("reply_ap", reply_ap,len); if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/ break; /*to check the transaction succeeds or fails*/ len=0; if(reply_ap[2]==0x0f)/*error packet returned from 9000*/ { while(reply_ap[7+len]!=0x0f) { memcpy(message+len,reply_ap+7+len,1); len++; } memcpy(message+len,reply_ap+7+len,1); message[len+1]=0x0; sna2a(message,message); strcpy(msg->temp,message); printf("%s\n",message);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -