📄 isoapp.cpp
字号:
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMTransferInterbank(void) // Transferencia interbancaria
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ( (memcmp((PBYTE)&chMsg[iOffset] , _B24_OPCODE_DEBIT_ORDER_XFER_ , 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_CREDIT_ORDER_XFER_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_QUERY_ORDER_XFER_ , 2) == 0) )
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMTransferCBU(void) // Transferencia minorista x CBU
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ( memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_TRANSFER_CBU_, 2) == 0
||
memcmp((PBYTE)&chMsg[iOffset],_B24_OPCODE_TRANSFER_CBU_ACH_, 2) == 0 )
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMAccountVerification(void) // Verificacion cuenta destino x transferencia
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( (memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_VERIF_ACCT_XFER_, 2) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMDeposit(void) // Deposito
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ( (memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_DEPOSIT_ , 2) == 0) )
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMFastCash(void) // Fast Cash o compra
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( (memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_WITHDRAWAL_FASTCASH_, 2) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMPayment(void) // Pagos
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ((memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_TELEPHONY_SRVCS_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_W_DEBIT_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_W_CASH_ , 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_W_DEBIT_ORDER_, 2) == 0)
)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMPaymentCashCheck(void) // Pagos Efec.
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ((memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_W_CASH_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_PAYMENT_W_DEBIT_ORDER_, 2) == 0) )
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMBuying(void) // Compras y relacionadas
{
// BASE24-product. Values are :
// 00-GENERIC Base/Propietary
// 01-B24 ATM
// 02-B24 POS
// 03-B24 Teller
// 08-From Host Maintenance
// 11-B24 EMS
// 12-B24 EFTPOS
char chPRODUCT = 0x00;
int iOffset = 0;
///////////////////////////////////////////////////////////
// PRECONDITION : CHECK THE PRODUCT CODE :
if( isdigit(chMsg[3]) && isdigit( chMsg[4]) )
{
// 1ST. OF ALL : CHECK THE PRODUCT CODE : ATM,POS,etc.
chPRODUCT = ((chMsg[3]-'0') * 10) + (chMsg[4]-'0') ;
if( _ISO8583_FORMAT_FOR_POS_ != chPRODUCT )
return FALSE;
}
else
chPRODUCT = 0x00;
////////////////////////////////////////////////////////
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
// Offset of the field #3
iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
( ((memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_W_ACCT_DEBIT_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_W_ACCT_DEBIT_CANCEL_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_DEVOLUTION_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_DEVOLUTION_CANCEL_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_CASH_BACK_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_CASH_BACK_CANCEL_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_PREAUTH_, 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], _B24_OPCODE_BUYING_PREAUTH_CANCEL_, 2) == 0)
)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMAutServicePayment(void) // Pagos automaticos serv.
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_RQST, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_REVERSAL_REP, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV, 4) == 0) ||
(memcmp((PBYTE)&chMsg[12], CISO_MSGTYPE_FINANCIAL_ADV_REP, 4) == 0) )
&&
// UserTrxCode [xxyyzz=6] : xx=trx_code,yy=from_acct_type,zz=to_acct_type
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -