iso8583.h
来自「ISO 8583 implementation.」· C头文件 代码 · 共 376 行 · 第 1/2 页
H
376 行
#define CISO_ADM_APPROVED_OUT_TIME "80" // 91 Administrativa aprobada fuera de horario.
#define CISO_ADM_APPROVED_TERMINAL "81" // 92 Administrativa aprobada generada en terminales
#define CISO_HBANKING_DENIED "47" // xx Usuario y DNI no coinciden en HomeBanking
#define CISO_DESTINY_NOT_AVAILABLE "91"
#define CISO_DESTINY_NOT_AVAILABLE_I 91
#endif // ( _BASE24_CURRENT_VERSION_ == _BASE24_RELEASE6_ )
///2005-08-31//////////////////////////////////////////////////////////////////////
// REVERSAL CODES BASE24 RELEASE 4? RELEASE 6?
#if ( _BASE24_CURRENT_VERSION_ == _BASE24_RELEASE6_ )
#define CISO_APPROVED "00"
#define CISO_APPROVED_I 0
#define CISO_APPROVED_VIP "01"
#define CISO_APPROVED_VIP_I 1
#define CISO_EXTERNAL_DECLINE "05"
#define CISO_EXTERNAL_DECLINE_I 5
#define CISO_INVALID_TRANSACTION "12"
#define CISO_INVALID_TRANSACTION_I 12
#define CISO_INVALID_FORMAT "30"
#define CISO_INVALID_FORMAT_I 30
#define CISO_TRANSACTION_NOT_SUPP "40"
#define CISO_TRANSACTION_NOT_SUPP_I 40
#define CISO_NOT_ENOUGH_AVAIL_ZERO "58"
#define CISO_NOT_ENOUGH_AVAIL_ABOVE_ZERO "59"
#define CISO_INSUFFICIENT_FOUNDS CISO_NOT_ENOUGH_AVAIL_ZERO
#define CISO_WITHDRAWAL_LIMIT_EXC CISO_NOT_ENOUGH_AVAIL_ABOVE_ZERO
#define CISO_INVALID_ACCOUNT "76"
#define CISO_NO_ACCOUNT_AVAILABLE CISO_INVALID_ACCOUNT
#define CISO_NO_CHECKINGS_ACCOUNT CISO_INVALID_ACCOUNT
#define CISO_NO_SAVINGS_ACCOUNT CISO_INVALID_ACCOUNT
#define CISO_SYSTEM_ERROR "88"
#define CISO_SYSTEM_ERROR_I 88
#define CISO_SYSTEM_FAILURE "96"
#define CISO_SYSTEM_FAILURE_I 96
#define CISO_CUTOVER_IN_PROGRESS "90"
#define CISO_CUTOVER_IN_PROGRESS_I 90
#define CISO_DESTINY_NOT_AVAILABLE "98"
#define CISO_DESTINY_NOT_AVAILABLE_I 98
#endif // ( _BASE24_CURRENT_VERSION_ == _BASE24_RELEASE6_ )
///2005-08-31//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
// Tipos de Mensajes ISO-8583, version 0, 1987
#define CISO_MSGTYPE_FINANCIAL_RQST "0200" // Financial Transactions
#define CISO_MSGTYPE_FINANCIAL_RESP "0210"
#define CISO_MSGTYPE_FINANCIAL_ADV "0220"
#define CISO_MSGTYPE_FINANCIAL_ADV_REP "0221"
#define CISO_MSGTYPE_FINANCIAL_ACK "0230"
#define CISO_MSGTYPE_STMT_PRINT_RQST "0205" // Statement Prints
#define CISO_MSGTYPE_STMT_PRINT_RESP "0215"
#define CISO_MSGTYPE_REVERSAL "0420" // Reversals
#define CISO_MSGTYPE_REVERSAL_REP "0421"
#define CISO_MSGTYPE_REVERSAL_ACK "0430"
#define CISO_MSGTYPE_SAF_ADV "0220" // SAF
#define CISO_MSGTYPE_SAF_ADV_REP "0221"
#define CISO_MSGTYPE_SAF_ACK "0230"
#define CISO_MSGTYPE_NETMGMT_RQST "0800" // Network Management
#define CISO_MSGTYPE_NETMGMT_RESP "0810"
#define CISO_MSGTYPE_ADJUSTEMENT "5400" // Miscelaneous: Adjustement
#define CISO_MSGTYPE_FINAN_RQST_ERR "9200" // Financial Transactions Error
#define CISO_MSGTYPE_FINAN_RESP_ERR "9210"
#define CISO_MSGTYPE_MULT_ACCNT_SEL "9906" // Multiple Account Selection
#define CISO_MSGTYPE_DEVICE_CONTROL "9980" // Device Control
//////////////////////////////////////////////////////////////////////////////////////////
// ISO Test prototype
EXPORT int ISO_Test(BYTE *bBuffer, int iBuffer, bool bFields, char* szOutFile, bool bTruncate);
// Configuration file
#define _ISO8583_CFG_FILE_ "ISO8583.CF"
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
// Clase Mensaje ISO-8583
//////////////////////////////////////////////////////////////////////////////////////////
class ISO8583MSG
{
public:
// Metodos publicos de la Clase
EXPORT ISO8583MSG(void); // Constructor default
EXPORT ISO8583MSG(PBYTE,WORD,PSTR=NULL); // Constructor opcional
EXPORT ~ISO8583MSG(void); // Destructor
EXPORT BOOL InitMessage(void); // Iniciar mensaje en cero campos
EXPORT BOOL DeleteField(WORD); // Borrar Campo
EXPORT BOOL Export(PBYTE,PWORD); // Exportador
EXPORT BOOL GetField(WORD,PWORD,PBYTE,WORD); // Valor de Campo
EXPORT BOOL GetMsgTypeId(PBYTE,WORD); // Id de Msg
EXPORT BOOL Import(const PBYTE,WORD); // Importador
EXPORT BOOL InsertField(WORD,PWORD,PBYTE,WORD); // Insercion de Campo
EXPORT BOOL IsNetworkMgmtRequest(void); // NetRqst?
EXPORT BOOL IsNetworkMgmtResponse(void); // NetRsp?
EXPORT BOOL IsValidMessage(void); // Es Mensaje valido?
EXPORT BOOL IsValidField(WORD); // Es Campo valido?
EXPORT WORD MessageLength(void); // Longitud mensaje
EXPORT BOOL SetField(WORD,PWORD,PBYTE,WORD); // Valor a Campo
EXPORT BOOL SetMsgTypeId(PBYTE,WORD); // Id de Msg
EXPORT BOOL SetMsgTypeIdResponse(void); // Id Respuesta de Msg
EXPORT void GetBitmaps(char chBistmap1[],char chBitmap2[]);
//////////////////////////////////////////////////////////////////////////////////////
EXPORT BOOL GetAllBitmapsDescriptions(PSTR); // Descriptor de todos los Bitmaps
EXPORT BOOL SaveAllBitmapsDescriptions(PSTR); // Descriptor de todos los Bitmaps
EXPORT BITMAPLIST * BitmapListReference(PCSTR); // Recupera lista de BITMAPS determinada
EXPORT BOOL GetHeader(char chHeader[], short nLen); // Recuperar Header
//////////////////////////////////////////////////////////////////////////////////////
protected:
// Metodos protegidos de la Clase
EXPORT BOOL DefaultBitmapsDescriptions(void);// Defaults bitmaps
EXPORT BOOL DefaultFieldsDescriptions(void); // Defaults fields
EXPORT WORD FieldOffset(WORD); // Desplazamiento Campo
EXPORT WORD FieldLength(WORD); // Longitud Campo
EXPORT WORD FieldType(WORD); // Tipo Campo
EXPORT BOOL GetFieldsDescription(PSTR); // Descriptor de Campos
EXPORT BOOL GetImplicitLength(WORD,PWORD); // Longitud implicita
EXPORT BOOL IsValidHeader(void); // Header?
EXPORT BOOL IsValidTransactionType(void); // Transaction Type?
EXPORT BOOL IsValidMsgTypeId(PBYTE=NULL); // Msg Type Id?
///////////////////////////////////////////////////////////////////
EXPORT BOOL GetBitmapDescription(PSTR,PSTR);// Descriptor de Bitmaps
EXPORT BOOL SaveBitmapDescription(PSTR,PSTR);// Descriptor de Bitmaps
///////////////////////////////////////////////////////////////////
virtual EXPORT BOOL IsValidUserData(void); // User Data?
virtual EXPORT BOOL IsValid200(void); // Financial Trx Request?
virtual EXPORT BOOL IsValid210(void); // Financial Trx Response?
virtual EXPORT BOOL IsValid220(void); // Financial Trx Completion?/SAF?
virtual EXPORT BOOL IsValid221(void); // Financial Trx Dup Completion?/SAF repeat?
virtual EXPORT BOOL IsValid230(void); // Financial Trx Completion Ack?/SAF Ack?
virtual EXPORT BOOL IsValid205(void); // Statement Print Request?
virtual EXPORT BOOL IsValid215(void); // Statement Print Response?
virtual EXPORT BOOL IsValid420(void); // Reversal?
virtual EXPORT BOOL IsValid421(void); // Reversal Repeat?
virtual EXPORT BOOL IsValid430(void); // Reversal Ack?
virtual EXPORT BOOL IsValid800(void); // Network Management?
virtual EXPORT BOOL IsValid810(void); // Network Management Response?
EXPORT BOOL MakeValidField(BYTE [],WORD); // Hacer Campo valido
EXPORT BOOL MakeInvalidField(BYTE [],WORD);// Hacer Campo invalido
EXPORT BOOL RecalculateOffsets(void); // Recalcular Offsets
// Variables protegidas de la Instancia (para acceso x/subclases)
BYTE chMsg[CISOMESSAGESIZE*10]; // Buffer de Mensaje ISO
WORD cbMsgLen; // Longitud del Buffer
// Buffer auxiliar de copia
BYTE chAuxMsg[CISOMESSAGESIZE*10];
WORD cbAuxMsgLen;
BOOL bCheckMessage; // Verificacion habilitada?
private:
// Variables privadas de la Instancia
FIELD fdFields[CISOFIELDS], // Descripcion de Campos en Mensaje
fdFieldsBkp[CISOFIELDS]; // Backup original de Campos
// Lista privada de Bitmaps para cada tipo de transaccion {200,205,210,...}
BITMAPLIST bml200, // Bit Map List 200
bml205, // Bit Map List 205
bml210, // Bit Map List 210
bml215, // Bit Map List 215
bml220, // Bit Map List 220
bml230, // Bit Map List 230
bml420, // Bit Map List 420
bml430, // Bit Map List 430
bml800, // Bit Map List 800
bml810; // Bit Map List 810
};
//////////////////////////////////////////////////////////////////////////////////////////
#endif // end-ifdef-ISO8583_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?