📄 isoapplk.cpp
字号:
//
// IT24 Sistemas S.A.
// Application ISO-8583 Messages as stated for ACI BASE24 RELEASE 4 and 6
//
// Libreria Propietaria de Mensajes ISO Aplicados
//
// Tarea Fecha Autor Observaciones
// (Delta) 2005.07.18 mdc Base24 Release 6.
//
// Header propio
#include <qusrinc/isoapp.h>
#include <memory.h>
#include <string.h>
#include <ctype.h>
///////////////////////////////////////////////////////////////
#if ( _ISO8583_FORMAT_TO_USE_ & _ISO8583_FORMAT_FOR_REDLINK_ )
/////////////////////////////////////////////////////////////////
// PAS?
EXPORT BOOL APPMSG::IsPASTransaction(void)
{
// El Tipo de Trx esta alguno Ok?
if( IsPASSuscription() || // Adhesion
IsPASSuscriptionRvrsl() || // Reversa Adhesion
IsPASInquiry() || // Consulta
IsPASPayment() || // Pago
IsPASPaymentResponse() || // Rta. a Pago
IsPASPaymentRvrsl() ) // Reversa Pago
return (TRUE);
// Tipo Trx invalido
return (FALSE);
}
// ULTMOV?
EXPORT BOOL APPMSG::IsULTMOVTransaction(void)
{
// El Tipo de Trx esta alguno Ok?
if( IsULTMOVInquiry() ) // Consulta
return (TRUE);
// Tipo Trx invalido
return (FALSE);
}
// AFJP?
EXPORT BOOL APPMSG::IsAFJPTransaction(void)
{
// El Tipo de Trx esta alguno Ok?
if( IsAFJPInquiry() || // Consulta
IsAFJPCuilInquiry() || // Consulta CUIL
IsAFJPPayment() || // Pago
IsAFJPMessageToInst() ) // Mensaje a Institucion
return (TRUE);
// Tipo Trx invalido
return (FALSE);
}
// SOAT?
EXPORT BOOL APPMSG::IsSOATTransaction(void)
{
// El Tipo de Trx esta alguno Ok?
if( IsSOATDuplicatedLogon() || // Logon de Usuario en Terminal duplicado?
IsSOATLogon() || // Logon de Usuario en Terminal?
IsSOATLogoff() || // Logoff de Usuario en Terminal?
IsSOATGenericInquiry() || // Consulta?
IsSOATGenericInsertion() || // Insercion?
IsSOATGenericDeletion() || // Borrado?
IsSOATGenericUpdate() || // Modificacion?
IsSOATGenericRequest() || // Requerimiento-Pedido generico?
IsSOATSystemCmd() // Comando del Sistema
)
// Ok
return (TRUE);
// Tipo Trx invalido
return (FALSE);
}
// Es valida la adhesion/suscripcion?
EXPORT BOOL APPMSG::IsPASSuscription(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], "890000", 6) == 0) ||
(memcmp((PBYTE)&chMsg[iOffset], "800000", 6) == 0) )
);
}
// Es valido el reverso de adhesion?
EXPORT BOOL APPMSG::IsPASSuscriptionRvrsl(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_REVERSAL, 4) == 0)
||
(memcmp((PBYTE)&chMsg[12], "0421", 4) == 0))
&&
// UserTrxCode [x..y=6]
(memcmp((PBYTE)&chMsg[iOffset], "800000", 6) == 0) // Adhesion
);
}
// Es valida la consulta?
EXPORT BOOL APPMSG::IsPASInquiry(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], "830000", 6) == 0)
);
}
// Es valido el pago?
EXPORT BOOL APPMSG::IsPASPayment(void)
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], "0220", 4) == 0)
||
(memcmp((PBYTE)&chMsg[12], "0221", 4) == 0))
&&
// UserTrxCode [x..y=6]
( ((memcmp((PBYTE)&chMsg[iOffset], "881000", 6) == 0) || // Pago s/fact
(memcmp((PBYTE)&chMsg[iOffset], "882000", 6) == 0) )
||
(memcmp((PBYTE)&chMsg[iOffset], "88", 2) == 0) // Pago s/usu
||
((memcmp((PBYTE)&chMsg[iOffset], "81", 2) == 0) || // Default
(memcmp((PBYTE)&chMsg[iOffset], "86", 2) == 0) )
)
);
}
// Es valido el reverso de pago?
EXPORT BOOL APPMSG::IsPASPaymentRvrsl(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_REVERSAL, 4) == 0)
||
(memcmp((PBYTE)&chMsg[12], "0421", 4) == 0))
&&
// UserTrxCode [x..y=6]
( ((memcmp((PBYTE)&chMsg[iOffset], "881000", 6) == 0) || // Pago s/fact
(memcmp((PBYTE)&chMsg[iOffset], "882000", 6) == 0) )
||
(memcmp((PBYTE)&chMsg[iOffset], "88", 2) == 0) // Pago s/usu
||
((memcmp((PBYTE)&chMsg[iOffset], "81", 2) == 0) || // Default
(memcmp((PBYTE)&chMsg[iOffset], "86", 2) == 0) )
)
);
}
// Es valida la respuesta al pago?
EXPORT BOOL APPMSG::IsPASPaymentResponse(void)
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
int iOffset = FieldOffset(3);
// Message-Type-Identifier [12..15=4]
return((memcmp((PBYTE)&chMsg[12], "0230", 4) == 0)
&&
// UserTrxCode [x..y=6]
( ((memcmp((PBYTE)&chMsg[iOffset], "881000", 6) == 0) || // Pago s/fact
(memcmp((PBYTE)&chMsg[iOffset], "882000", 6) == 0) )
||
(memcmp((PBYTE)&chMsg[iOffset], "88", 2) == 0) // Pago s/usu
||
((memcmp((PBYTE)&chMsg[iOffset], "81", 2) == 0) || // Default
(memcmp((PBYTE)&chMsg[iOffset], "86", 2) == 0) )
)
);
}
// Es valido el pago desde un host y terminal POS Teller?
EXPORT BOOL APPMSG::IsPASPaymentFromPOSTerminal(void)
{
// UserTrxCode P-3
if(!IsValidField(3))
return (FALSE);
// Track2 P-35
if(!IsValidField(35))
return (FALSE);
int iOffTrxCde = FieldOffset(3) +FieldType(3) ,
iOffTrk2 = FieldOffset(35)+FieldType(35);
// Message-Type-Identifier [12..15=4]
return(((memcmp((PBYTE)&chMsg[12], (PBYTE)"0220", 4) == 0)
||
(memcmp((PBYTE)&chMsg[12], (PBYTE)"0221", 4) == 0))
&&
(memcmp((PBYTE)&chMsg[iOffTrxCde], (PBYTE)"86", 2) == 0)
&&
(memcmp((PBYTE)&chMsg[iOffTrk2], (PBYTE)"00", 2) == 0)
);
}
// Es valida la consulta?
EXPORT BOOL APPMSG::IsULTMOVInquiry(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], "942000", 6) == 0) || //CtaCte$
(memcmp((PBYTE)&chMsg[iOffset], "940700", 6) == 0) || //CtaCteUS$
(memcmp((PBYTE)&chMsg[iOffset], "941000", 6) == 0) || //CajAh$
(memcmp((PBYTE)&chMsg[iOffset], "941500", 6) == 0) || //CajAhUS$
(memcmp((PBYTE)&chMsg[iOffset], "941400", 6) == 0) || //CajAhBono
(memcmp((PBYTE)&chMsg[iOffset], "943000", 6) == 0)) //TCred
);
}
// Es valida la consulta?
EXPORT BOOL APPMSG::IsAFJPInquiry(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], "941300", 6) == 0)
);
}
// Es valida la consulta de CUIL como Id?
EXPORT BOOL APPMSG::IsAFJPCuilInquiry(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)
&&
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -