📄 testiso.cpp
字号:
// Cotizaciones campo 127, respuesta
fprintf(fOutput,
"#127-Micr-Data[%i]=[Aplic=%c][CambioC=%.*s][CambioV=%.*s]\n"
" [Cambio1=%.*s][Cambio2=%.*s]\n",
wFieldLength,
stSecRes8.stATM.stATM_Dl_Resp.chCamb_Aplic,
8,stSecRes8.stATM.stATM_Dl_Resp.chCambio_C,
8,stSecRes8.stATM.stATM_Dl_Resp.chCambio_V,
8,stSecRes8.stATM.stATM_Dl_Resp.chCambio_1,
8,stSecRes8.stATM.stATM_Dl_Resp.chCambio_2 );
}
else if(i == 126)
{
// Field #126, SecRsrvd7
szFieldValue[0] = 0x00;
memset((PBYTE)&stSecRes7, 0, sizeof stSecRes7);
wFieldLength = sizeof stSecRes7;
bResult = isoMsg.GetField( 126,
&wFieldLength,
(PBYTE)&stSecRes7,
sizeof stSecRes7 );
fprintf(fOutput,"#126-SecRsrv7[%i]=[%s]\n",
wFieldLength, stSecRes7.chData);
}
else if(i == 55)
{
// Field#55, AddDataPrvt1
szFieldValue[0] = 0x00;
memset((PBYTE)&stRsrvd1, 0, sizeof stRsrvd1);
wFieldLength = sizeof stRsrvd1;
bResult = isoMsg.GetField( 55,
&wFieldLength,
(PBYTE)&stRsrvd1,
sizeof(stRsrvd1));
if( strncmp(szTranCode,"39",2)==0 ||
strncmp(szTranCode,"09",2)==0 ||
strncmp(szTranCode,"19",2)==0 ||
strncmp(szTranCode,"29",2)==0 ||
strncmp(szTranCode,"40",2)==0 )
fprintf(fOutput,
"#055-XFER-BANK-DATA[%i]="
"[Track2=%.*s][CA=%.*s]\n"
" [From Account FIID-TYP-NUM=%.*s-%.*s-%.*s]\n"
" [To Account FIID-TYP-NUM=%.*s-%.*s-%.*s]\n"
" [Libre disponibilidad=FromAcct='%c' ToAcct='%c']\n",
wFieldLength,
40,stRsrvd1.stInterbancarias.chTrack2,
2,stRsrvd1.stInterbancarias.chCA,
4,stRsrvd1.stInterbancarias.stFrom_Acct.chFiid,
2,stRsrvd1.stInterbancarias.stFrom_Acct.chTyp,
19,stRsrvd1.stInterbancarias.stFrom_Acct.chAcct_num,
4,stRsrvd1.stInterbancarias.stTo_Acct.chFiid,
2,stRsrvd1.stInterbancarias.stTo_Acct.chTyp,
19,stRsrvd1.stInterbancarias.stTo_Acct.chAcct_num,
stRsrvd1.stInterbancarias.chFr_Acct_Typ,
stRsrvd1.stInterbancarias.chTo_Acct_Typ
); // arancel de usuario
else
bFields?fprintf(fOutput,"#055-PasData[%i]=[%*.*s]\n",
wFieldLength, sizeof stRsrvd1.chData, sizeof stRsrvd1.chData,
(char*)stRsrvd1.chData):0;
}
else if(i == 54)
{
// Field#54
szFieldValue[0] = 0x00;
memset((PBYTE)&stAddAmts, 0, sizeof stAddAmts);
wFieldLength = sizeof stAddAmts;
bResult = isoMsg.GetField( 54,
&wFieldLength,
(PBYTE)&stAddAmts,
sizeof(stAddAmts));
if(isoMsg.IsATMTransferCBU()) // Transferencia x CBU
fprintf(fOutput,
"#054-B24-0210-CBU[%i]="
"[CBU=%-22.22s]\n",
wFieldLength,
pstCBU->stTransferenciaCBU.chCBU ); // CBU
else
fprintf(fOutput,
"#054-B24-0210-DEF-DATA[%i]="
"[Amt=%.*s]"
"[With_adv_avail=%.*s]"
"[Int_owe_austral=%.*s]\n"
" [Cash_avail=%.*s]"
"[Min_payment=%.*s]"
"[Payment_dat=%.*s]"
"[Interest_rate=%.*s]\n"
" [Owe_dollar=%.*s]"
"[Min_payment_dollar=%.*s]"
"[Purchase_dollar=%.*s]"
"[Cash_fee=%.*s]\n",
wFieldLength,
12,stAddAmts.stB24_0210_Def_Data.chAMT, // 12 + reseved 108 bytes
2 ,stAddAmts.stB24_0210_Def_Data.chWITH_ADV_AVAIL, // contador extracciones o adelantos
12,stAddAmts.stB24_0210_Def_Data.chINT_OWE_AUSTRAL, // intereses ganados o deuda anterior y LIBRE DISPONIBILIDAD
12,stAddAmts.stB24_0210_Def_Data.chCASH_AVAIL, // saldo disponible
12,stAddAmts.stB24_0210_Def_Data.chMIN_PAYMENT,
6 ,stAddAmts.stB24_0210_Def_Data.chPAYMENT_DAT,
6 ,stAddAmts.stB24_0210_Def_Data.chINTEREST_RATE,
10,stAddAmts.stB24_0210_Def_Data.chOWE_DOLAR, // deuda en dolares y ACUMULADOR DE EXTRACCIONES
10,stAddAmts.stB24_0210_Def_Data.chMIN_PAYMENT_DOLAR,
10,stAddAmts.stB24_0210_Def_Data.chPURCHASE_DOLAR,
8 ,stAddAmts.stB24_0210_Def_Data.chCASH_FEE); // arancel de usuario
}
else
{
// Field#i
szFieldValue[0] = 0x00;
wFieldLength = sizeof szFieldValue;
bResult = isoMsg.GetField( i,
&wFieldLength,
szFieldValue,
sizeof(szFieldValue));
// TranCode resguardado
if(3==i)
{
strcpy(szTranCode,(char *)szFieldValue);
pszTranCodeDesc = "N/A";
/***********************************************/
/* CONVERT TO DECIMAL - DO NOT USE STD.LIB. */
j = (szTranCode[0]-'0')*10 + (szTranCode[1]-'0');
/***********************************************/
switch ( j )
{
case B24_OPCODE_WITHDRAWAL :
pszTranCodeDesc = "WITHDRAWAL"; break;
case B24_OPCODE_WITHDRAWAL_FASTCASH :
pszTranCodeDesc = "WITHDRAWAL_FASTCASH"; break;
case B24_OPCODE_WITHDRAWAL_FRGN_CURRENCY :
pszTranCodeDesc = "WITHDRAWAL_FRGN_CURRENCY / BUYING_W_ACCT_DEBIT_CANCEL";
break;
case B24_OPCODE_DEPOSIT :
pszTranCodeDesc = "DEPOSIT"; break;
case B24_OPCODE_BALANCE_INQUIRY :
pszTranCodeDesc = "BALANCE_INQ"; break;
case B24_OPCODE_PIN_CHANGE :
pszTranCodeDesc = "PIN_CHANGE"; break;
case B24_OPCODE_PAYMENT_W_DEBIT :
pszTranCodeDesc = "PAYMENT_W_DEBIT"; break;
case B24_OPCODE_PAYMENT_W_STATEMENT :
pszTranCodeDesc = "PAYMENT_W_STATEMENT"; break;
case B24_OPCODE_PAYMENT_W_CASH :
pszTranCodeDesc = "PAYMENT_W_CASH"; break;
case B24_OPCODE_TRANSFER :
pszTranCodeDesc = "TRANSFER"; break;
case B24_OPCODE_TRANSFER_FRGN_CURRENCY :
pszTranCodeDesc = "TRANSFER_FRGN_CURRENCY"; break;
case B24_OPCODE_TRANSFER_CBU :
pszTranCodeDesc = "TRANSFER_CBU"; break;
case B24_OPCODE_TRANSFER_CBU_ACH :
pszTranCodeDesc = "TRANSFER_CBU_ACH"; break;
case B24_OPCODE_BUYING_W_ACCT_DEBIT :
pszTranCodeDesc = "BUYING_ACCT_DEBIT"; break;
case B24_OPCODE_BUYING_DEVOLUTION :
pszTranCodeDesc = "BUYING_DEVOLUTION"; break;
case B24_OPCODE_BUYING_DEVOLUTION_CANCEL :
pszTranCodeDesc = "BUYING_DEVOLUTION_CANC"; break;
case B24_OPCODE_BUYING_CASH_BACK :
pszTranCodeDesc = "BUYING_CASHBACK"; break;
case B24_OPCODE_BUYING_CASH_BACK_CANCEL :
pszTranCodeDesc = "BUYING_CASHBACK_CANC"; break;
default: pszTranCodeDesc = "ERROR"; break;
}
/**************************************/
bFields?fprintf(fOutput,"#%3.3i%s=[%s]-(%s)\n",
i, szFieldDesc, szFieldValue, pszTranCodeDesc):0;
}
else
{
bFields?fprintf(fOutput,"#%3.3i%s=[%s]\n",
i, szFieldDesc, szFieldValue):0;
}
/*********************************************/
};//switch
};//for-i
/////////////////////////////////////////////////////////////////////////
// Falta campo 39 ?
if(strncmp((char *)szMsgType,"0420",4)==0 && !isoMsg.IsValidField( 39 ) )
{
// Falta campo 39
fprintf(fOutput,"\n#Falta campo #39 : Lo correcto deberia ser :\n");
bResult = isoMsg.InsertField( 39,
&(wFieldLength=2),
(unsigned char *)"01",
wFieldLength=2 );
isoMsg.GetHeader((PSTR)bBuffer, 32);
isoMsg.GetBitmaps((PSTR)&bBuffer[16], (PSTR)&bBuffer[32]);
bResult = isoMsg.GetField( 39,
&(wFieldLength=2),
szFieldValue,
sizeof(szFieldValue));
// Header [0..31]
//printf("\n#Header=[%-32.32s]\n", (PSTR)bBuffer);
bFields?fprintf(fOutput,"\n#Header=[%-32.32s]\n", (PSTR)bBuffer):0;
// Primary Bitmap [16..31]
//printf("#PrimaryBitmap=[%-16.16s]\n", (PSTR)&bBuffer[16]);
bFields?fprintf(fOutput,"#PrimaryBitmap=[%-16.16s]\n", (PSTR)&bBuffer[16]):0;
strcpy( (PSTR)szFieldDesc, "-RespCode");
bFields?fprintf(fOutput,"#%3.3i%s=[%s]\n",
39, szFieldDesc, szFieldValue):0;
}
/////////////////////////////////////////////////////////////////////////
// Cerrar archivo de salida
fclose( fOutput );
fOutput = NULL;
// Ok !
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -