Freigeben über


MagneticStripeReaderDataReceived

Dieses Ereignis wird nach einem erfolgreichen MSR-Scanereignis (Magnetic Stripe Reader) ausgelöst.

Syntax

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;

Die folgende Tabelle zeigt das Speicherlayout des Datenpuffers für dieses Ereignis.

Arbeitsspeicherwert BESCHREIBUNG
0x00000008 EventType = PosEventType:: MagneticStripeReaderDataReceived
UINT32 DataLength = sizeof(PosEventDataHeader) + sizeof(MSR_DATA_RECEIVED)
32-Bit-MsrCardType MsrCardType
unsigned char Track1EncryptedDataLength : Ist immer null (0), wenn MsrDataEncryptionMsrDataEncryption_None ist.
unsigned char Track2EncryptedDataLength : Ist immer null (0), wenn MsrDataEncryptionMsrDataEncryption_None ist.
unsigned char Track3EncryptedDataLength : Ist immer null (0), wenn MsrDataEncryptionMsrDataEncryption_None ist.
unsigned char Track4EncryptedDataLength : Ist immer null (0), wenn MsrDataEncryptionMsrDataEncryption_None ist.
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track1EncryptedDataLength bytes of encrypted track 1 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track2EncryptedDataLength bytes of encrypted track 2 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track3EncryptedDataLength bytes of encrypted track 3 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track4EncryptedDataLength bytes of encrypted track 4 data
unsigned char Track1MaskedDataLength
unsigned char Track2MaskedDataLength
unsigned char Track3MaskedDataLength
unsigned char Track4MaskedDataLength
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track1MaskedDataLength bytes of masked track 1 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track2MaskedDataLength bytes of masked track 2 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track3MaskedDataLength bytes of masked track 3 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track4MaskedDataLength Bytes der maskierten Track 4-Daten
unsigned char Track1DiscretionaryDataLength – Ist immer null (0), wenn MagneticStripeReaderIsDecodeDataEnabled auf false festgelegt ist.
unsigned char Track2DiscretionaryDataLength: Ist immer null (0), wenn MagneticStripeReaderIsDecodeDataEnabled auf false festgelegt ist.
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track1DiscretionaryDataLength bytes of discretionary track 1 data
zeichen ohne Vorzeichen [MSR_TRACK_SIZE] Track2DiscretionaryDataLength bytes of discretionary track 2 data
unsigned char CardAuthenicationDataLength : Länge der verschlüsselten Daten in Bytes, einschließlich Auffüllung
unsigned char CardAuthenticationDataAbsoluteLength : Länge der unverschlüsselten Daten in Bytes (möglicherweise müssen Sie den Abstand während der Entschlüsselung entfernen)
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_DATA_SIZE] CardAuthenticationDataAbsoluteLength bytes of Karte authentication data
unsigned char AdditionalSecurityInformationLength
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE] AdditionalSecurityInformationLength Bytes zusätzlicher Sicherheitsinformationen

Anforderungen

Header: pointofservicedriverinterface.h