⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isopas.cpp

📁 ISO 8583 implementation.
💻 CPP
字号:
//
// IT24 SISTEMAS S.A.
// Proyecto Pago Automatico de Servicios
// Transaction Control Server
// P.A.S. Propietary Messages Classes
//
// Libreria Propietaria de Mensajes P.A.S.
//
// Tarea        Fecha           Autor   Observaciones
// (Inicial)    1997.10.08      mdc     Base
//

// Header propio
#include "isopas.h"


// User Data?
EXPORT BOOL PASMSG::IsValidUserData(void)
{
	// El Tipo de Trx esta alguno Ok?
	if( IsValidSuscription() ||    // Adhesion
	    IsValidInquiry()     ||    // Consulta
		IsValidPayment()     ||    // Pago
		IsValidReversal() )        // Reversa
		return TRUE;

	// Tipo Trx invalido
    return FALSE;
}

// Es valida la adhesion/suscripcion?
EXPORT BOOL PASMSG::IsValidSuscription(void)
{	
	// UserTrxCode P-3
	if(!IsValidField(3)) return FALSE;

	int iOffset = FieldOffset(3);
	// Message-Type-Identifier [12..15=4]    	
	return((strncmp(&chMsg[12], "0200", 4) == 0) 
		   &&		  
		   // UserTrxCode [32..37=6]
	       ((strncmp(&chMsg[iOffset], "890000", 6) == 0) ||
		    (strncmp(&chMsg[iOffset], "800000", 6) == 0) )
		  );
}
// Es valido el reverso?
EXPORT BOOL PASMSG::IsValidReversal(void)
{
	// UserTrxCode P-3
	if(!IsValidField(3)) return FALSE;

	int iOffset = FieldOffset(3);
	// Message-Type-Identifier [12..15=4]    	
	return((strncmp(&chMsg[12], "0420", 4) == 0) 
		   &&		  
		   // UserTrxCode [32..37=6]
		   ( (strncmp(&chMsg[iOffset], "800000", 6) == 0)       // Adhesion
		      ||
	         ((strncmp(&chMsg[iOffset], "881000", 6) == 0) ||   // Pago s/fact
		      (strncmp(&chMsg[iOffset], "882000", 6) == 0) )
			  ||
			 (strncmp(&chMsg[iOffset], "88", 2) == 0)           // Pago s/usu
			  ||
	         ((strncmp(&chMsg[iOffset], "81", 2) == 0) ||       // Default
		      (strncmp(&chMsg[iOffset], "86", 2) == 0) )
		   )
		  );
}
// Es valida la consulta?
EXPORT BOOL PASMSG::IsValidInquiry(void)
{
	// UserTrxCode P-3
	if(!IsValidField(3)) return FALSE;

	int iOffset = FieldOffset(3);
	// Message-Type-Identifier [12..15=4]    	
	return((strncmp(&chMsg[12], "0200", 4) == 0) 
		   &&		  
		   // UserTrxCode [32..37=16]
	       (strncmp(&chMsg[iOffset], "830000", 6) == 0) 
		  );
}
// Es valido el pago?
EXPORT BOOL PASMSG::IsValidPayment(void)
{
	// UserTrxCode P-3
	if(!IsValidField(3)) return FALSE;

	int iOffset = FieldOffset(3);
	// Message-Type-Identifier [12..15=4]    	
	return((strncmp(&chMsg[12], "0220", 4) == 0) 
		   &&		  
		   // UserTrxCode [32..37=6]
		   ( ((strncmp(&chMsg[iOffset], "881000", 6) == 0) ||   // Pago s/fact
		      (strncmp(&chMsg[iOffset], "882000", 6) == 0) )
			  ||
			 (strncmp(&chMsg[iOffset], "88", 2) == 0)           // Pago s/usu
			  ||
	         ((strncmp(&chMsg[iOffset], "81", 2) == 0) ||       // Default
		      (strncmp(&chMsg[iOffset], "86", 2) == 0) )
		   )
		  );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -