📄 isoapp.cpp
字号:
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMTransfer(void) // Transferencia en cuentas relacionadas
{
// 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], "40", 2) == 0)
&& 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], "09", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "19", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "29", 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], "1B", 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], "39", 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], "21", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "22", 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], "11", 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], "17", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "50", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "51", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "90", 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], "51", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "90", 2) == 0) )
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMBuying(void) // Compras y relacionadas
{
// 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], "71", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "72", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "74", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "75", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "76", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "77", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "78", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "79", 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
( ((memcmp((PBYTE)&chMsg[iOffset], "80", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "81", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "82", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "83", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "84", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "85", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "86", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "87", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "88", 2) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "89", 2) == 0)
)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMOthersMsgs(void) // Otros mensajes
{
// 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], "91", 2) == 0)
||
(memcmp((PBYTE)&chMsg[iOffset], "93", 2) == 0))
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsValidReversal(void) // Reverso ?
{
return ( IsValid420() || IsValid421() );
}
EXPORT BOOL APPMSG::IsATMLastMovInquiry(void)
{
// 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)
&&
// UserTrxCode [x..y=6]
((memcmp((PBYTE)&chMsg[iOffset], "94", 2) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMPinChange(void)
{
// 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)
&&
// UserTrxCode [x..y=6]
((memcmp((PBYTE)&chMsg[iOffset], "320000", 6) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMAssignHomeBankUser(void)
{
// 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)
&&
// UserTrxCode [x..y=6]
((memcmp((PBYTE)&chMsg[iOffset], "340000", 6) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsATMExchangeRateInquiry(void)
{
// 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)
&&
// UserTrxCode [x..y=6]
((memcmp((PBYTE)&chMsg[iOffset], "350000", 6) == 0)
&& IsValidFromAccountType( iOffset )
&& IsValidToAccountType( iOffset )
)
);
}
EXPORT BOOL APPMSG::IsFinancialAdvice(void) // Forzado (0220,0221)
{
return ( IsValid220() || IsValid221() );
}
EXPORT BOOL APPMSG::IsReversalOrAdviceRepeat(void) // Repeticion de Forzado-Reverso (0221,0421)
{
return ( IsValid221() || IsValid421() );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -