Поделиться через


MagneticStripeReaderDataReceived

Это событие возникает после успешного сканирования считывателя магнитных полос (MSR).

Синтаксис

typedef struct _MSR_DATA_RECEIVED {
    MsrCardType CardType;
    unsigned char Track1EncryptedDataLength;
    unsigned char Track2EncryptedDataLength;
    unsigned char Track3EncryptedDataLength;
    unsigned char Track4EncryptedDataLength;
    unsigned char Track1EncryptedData[MSR_TRACK_SIZE];
    unsigned char Track2EncryptedData[MSR_TRACK_SIZE];
    unsigned char Track3EncryptedData[MSR_TRACK_SIZE];
    unsigned char Track4EncryptedData[MSR_TRACK_SIZE];
    unsigned char Track1MaskedDataLength;
    unsigned char Track2MaskedDataLength;
    unsigned char Track3MaskedDataLength;
    unsigned char Track4MaskedDataLength;
    unsigned char Track1MaskedData[MSR_TRACK_SIZE];
    unsigned char Track2MaskedData[MSR_TRACK_SIZE];
    unsigned char Track3MaskedData[MSR_TRACK_SIZE];
    unsigned char Track4MaskedData[MSR_TRACK_SIZE];
    unsigned char Track1DiscretionaryDataLength;
    unsigned char Track2DiscretionaryDataLength;
    unsigned char Track1DiscretionaryData[MSR_TRACK_SIZE];
    unsigned char Track2DiscretionaryData[MSR_TRACK_SIZE];
    unsigned char CardAuthenicationDataLength; // Length of data after encryption, may include padding.
    unsigned char CardAuthenticationDataAbsoluteLength; // Length of data before encryption, may be needed to strip padding on decryption.
    unsigned char CardAuthenicationData[MSR_CARD_AUTHENTICATION_DATA_SIZE];
    unsigned char AdditionalSecurityInformationLength;
    unsigned char AdditionalSecurityInformation[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE];
} MSR_DATA_RECEIVED, *PMSR_DATA_RECEIVED;

В следующей таблице показан макет памяти буфера данных для этого события.

Значение памяти Описание
0x00000008 EventType = PosEventType:: MagneticStripeReaderDataReceived
UINT32 DataLength = sizeof(PosEventDataHeader) + sizeof(MSR_DATA_RECEIVED)
32-разрядная версия MsrCardType MsrCardType
unsigned char Track1EncryptedDataLength — всегда будет равно нулю (0), если msrDataEncryptionMsrDataEncryption_None.
unsigned char Track2EncryptedDataLength — всегда будет иметь значение ноль (0), если msrDataEncryptionMsrDataEncryption_None.
unsigned char Track3EncryptedDataLength — всегда будет иметь нулевое значение (0), если msrDataEncryptionMsrDataEncryption_None.
unsigned char Track4EncryptedDataLength — всегда будет иметь значение ноль (0), если msrDataEncryptionMsrDataEncryption_None.
unsigned char [MSR_TRACK_SIZE] Track1EncryptedDataLength байт зашифрованных данных track 1
unsigned char [MSR_TRACK_SIZE] Track2EncryptedDataLength байт зашифрованных данных track 2
unsigned char [MSR_TRACK_SIZE] Track3EncryptedDataLength байт зашифрованных данных track 3
unsigned char [MSR_TRACK_SIZE] Track4EncryptedDataLength байт зашифрованных данных track 4
unsigned char Track1MaskedDataLength
unsigned char Track2MaskedDataLength
unsigned char Track3MaskedDataLength
unsigned char Track4MaskedDataLength
unsigned char [MSR_TRACK_SIZE] Track1MaskedDataLength байт данных маскированного трека 1
unsigned char [MSR_TRACK_SIZE] Track2MaskedDataLength байт данных маскированного трека 2
unsigned char [MSR_TRACK_SIZE] Track3MaskedDataLength байт данных маскированного трека 3
unsigned char [MSR_TRACK_SIZE] Track4MaskedDataLength байт данных маскированного трека 4
unsigned char Track1DiscretionaryDataLength — всегда будет иметь значение ноль (0), если значение MagneticStripeReaderIsDecodeDataEnabled равно false.
unsigned char Track2DiscretionaryDataLength — всегда будет равно нулю (0), если magneticStripeReaderIsDecodeDataEnabled имеет значение false.
unsigned char [MSR_TRACK_SIZE] Track1DiscretionaryDataLength байт данных дискреционной дорожки 1
unsigned char [MSR_TRACK_SIZE] Track2DiscretionaryDataLength байт данных дискреционной дорожки 2
unsigned char CardAuthenicationDataLength — длина зашифрованных данных в байтах, включая заполнение
unsigned char CardAuthenticationDataAbsoluteLength — длина незашифрованных данных в байтах (во время расшифровки может потребоваться чередование заполнения).
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_DATA_SIZE] CardAuthenticationDataAbsoluteLengthbytes of карта authentication data
unsigned char AdditionalSecurityInformationLength
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE] AdditionalSecurityInformationLength байтов дополнительных сведений о безопасности

Требования

Заголовок: pointofservicedriverinterface.h