SCRA Audio Reader Family Programmer s Reference Manual

SCRA Audio Reader Family Programmer s Reference Manual
SCRA Reader
Audio Reader Family
Programmer’s Reference (Windows)
August 2014
Manual Part Number:
99875657-1.01
REGISTERED TO ISO 9001:2008
MagTek I 1710 Apollo Court I Seal Beach, CA 90740 I Phone: (562) 546-6400 I Technical Support: (888) 624-8350
www.magtek.com
Copyright © 2006 2014 MagTek, Inc.
Printed in the United States of America
Information in this publication is subject to change without notice and may contain technical inaccuracies
or graphical discrepancies. Changes or improvements made to this product will be updated in the next
publication release. No part of this document may be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without the express written permission of MagTek, Inc.
MagTek® is a registered trademark of MagTek, Inc.
Microsoft® and Windows® are registered trademarks of Microsoft Corporation.
All other system names and product names are the property of their respective owners.
Table 0.1 Revisions
Rev Number
1.01
Date
Aug 12, 2014
Notes
Initial Release
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 2
SOFTWARE LICENSE AGREEMENT
IMPORTANT: YOU SHOULD CAREFULLY READ ALL THE TERMS, CONDITIONS AND
RESTRICTIONS OF THIS LICENSE AGREEMENT BEFORE INSTALLING THE SOFTWARE
PACKAGE. YOUR INSTALLATION OF THE SOFTWARE PACKAGE PRESUMES YOUR
ACCEPTANCE OF THE TERMS, CONDITIONS, AND RESTRICTIONS CONTAINED IN THIS
AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, CONDITIONS, AND
RESTRICTIONS, PROMPTLY RETURN THE SOFTWARE PACKAGE AND ASSOCIATED
DOCUMENTATION TO THE ADDRESS ON THE FRONT PAGE OF THIS DOCUMENT,
ATTENTION: CUSTOMER SUPPORT.
TERMS, CONDITIONS, AND RESTRICTIONS
MagTek, Incorporated (the "Licensor") owns and has the right to distribute the described software and
documentation, collectively referred to as the "Software."
LICENSE: Licensor grants you (the "Licensee") the right to use the Software in conjunction with
MagTek products. LICENSEE MAY NOT COPY, MODIFY, OR TRANSFER THE SOFTWARE IN
WHOLE OR IN PART EXCEPT AS EXPRESSLY PROVIDED IN THIS AGREEMENT. Licensee
may not decompile, disassemble, or in any other manner attempt to reverse engineer the Software.
Licensee shall not tamper with, bypass, or alter any security features of the software or attempt to do so.
TRANSFER: Licensee may not transfer the Software or license to the Software to another party without
the prior written authorization of the Licensor. If Licensee transfers the Software without authorization,
all rights granted under this Agreement are automatically terminated.
COPYRIGHT: The Software is copyrighted. Licensee may not copy the Software except for archival
purposes or to load for execution purposes. All other copies of the Software are in violation of this
Agreement.
TERM: This Agreement is in effect as long as Licensee continues the use of the Software. The Licensor
also reserves the right to terminate this Agreement if Licensee fails to comply with any of the terms,
conditions, or restrictions contained herein. Should Licensor terminate this Agreement due to Licensee's
failure to comply, Licensee agrees to return the Software to Licensor. Receipt of returned Software by
the Licensor shall mark the termination.
LIMITED WARRANTY: Licensor warrants to the Licensee that the disk(s) or other media on which
the Software is recorded are free from defects in material or workmanship under normal use.
THE SOFTWARE IS PROVIDED AS IS. LICENSOR MAKES NO OTHER WARRANTY OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Because of the diversity of conditions and PC hardware under which the Software may be used, Licensor
does not warrant that the Software will meet Licensee specifications or that the operation of the Software
will be uninterrupted or free of errors.
IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY DAMAGES, INCLUDING ANY LOST
PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE, OR INABILITY TO USE, THE SOFTWARE. Licensee's sole remedy in
the event of a defect in material or workmanship is expressly limited to replacement of the Software
disk(s) if applicable.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 3
GOVERNING LAW: If any provision of this Agreement is found to be unlawful, void, or
unenforceable, that provision shall be removed from consideration under this Agreement and will not
affect the enforceability of any of the remaining provisions. This Agreement shall be governed by the
laws of the State of California and shall inure to the benefit of MagTek, Incorporated, its successors or
assigns.
ACKNOWLEDGMENT: LICENSEE ACKNOWLEDGES THAT HE HAS READ THIS
AGREEMENT, UNDERSTANDS ALL OF ITS TERMS, CONDITIONS, AND RESTRICTIONS, AND
AGREES TO BE BOUND BY THEM. LICENSEE ALSO AGREES THAT THIS AGREEMENT
SUPERSEDES ANY AND ALL VERBAL AND WRITTEN COMMUNICATIONS BETWEEN
LICENSOR AND LICENSEE OR THEIR ASSIGNS RELATING TO THE SUBJECT MATTER OF
THIS AGREEMENT.
QUESTIONS REGARDING THIS AGREEMENT SHOULD BE ADDRESSED IN WRITING TO
MAGTEK, INCORPORATED, ATTENTION: CUSTOMER SUPPORT, AT THE ADDRESS LISTED
IN THIS DOCUMENT, OR E-MAILED TO [email protected]
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 4
0 Table of Contents
Table of Contents
SOFTWARE LICENSE AGREEMENT .................................................................................................. 3
Table of Contents ............................................................................................................................... 5
1
Introduction ................................................................................................................................. 8
2
About MagTekSCRA ................................................................................................................... 8
3
How to Set Up the Host PC ........................................................................................................ 8
4
How to Set Up the MagTek Windows SCRA SDK ................................................................. 11
5
MagTekSCRA Class Methods .................................................................................................. 12
5.1
openDevice ........................................................................................................................ 12
5.2
closeDevice ........................................................................................................................ 12
5.3
isDeviceConnected ........................................................................................................... 12
5.4
getMaskedTracks .............................................................................................................. 12
5.5
getTrack1 ........................................................................................................................... 13
5.6
getTrack2 ........................................................................................................................... 13
5.7
getTrack3 ........................................................................................................................... 13
5.8
getTrack1Masked ............................................................................................................. 13
5.9
getTrack2Masked ............................................................................................................. 14
5.10
getTrack3Masked ......................................................................................................... 14
5.11
getMagnePrint ............................................................................................................... 15
5.12
getMagnePrintStatus.................................................................................................... 15
5.13
getDeviceSerial .............................................................................................................. 16
5.14
getSessionID .................................................................................................................. 16
5.15
getKSN ............................................................................................................................ 17
5.16
getDeviceName ............................................................................................................. 17
5.17
clearBuffers .................................................................................................................... 17
5.18
getBatteryLevel.............................................................................................................. 17
5.19
getSwipeCount............................................................................................................... 17
5.20
getCapMagnePrint ........................................................................................................ 18
5.21
getCapMagnePrintEncryption ..................................................................................... 18
5.22
getCapMagneSafe20Encryption ................................................................................. 18
5.23
getCapMagStripeEncryption ........................................................................................ 18
5.24
getCapMSR .................................................................................................................... 18
5.25
getCapTracks ................................................................................................................. 19
5.26
getCardDataCRC ........................................................................................................... 19
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 5
0 Table of Contents
6
7
8
5.27
getCardExpDate ............................................................................................................. 19
5.28
getCardIIN....................................................................................................................... 19
5.29
getCardLast4 ................................................................................................................. 20
5.30
getCardName ................................................................................................................. 20
5.31
getCardPANLength ....................................................................................................... 20
5.32
getCardServiceCode ..................................................................................................... 20
5.33
getCardStatus ................................................................................................................ 20
5.34
getDataFieldCount ........................................................................................................ 21
5.35
getHashCode .................................................................................................................. 21
5.36
getDeviceConfig ............................................................................................................ 21
5.37
getEncryptionStatus...................................................................................................... 22
5.38
getFirmware ................................................................................................................... 22
5.39
getMagTekDeviceSerial ............................................................................................... 23
5.40
getResponseData .......................................................................................................... 23
5.41
getResponseType .......................................................................................................... 23
5.42
getTagValue ................................................................................................................... 23
5.43
getTLVVersion ................................................................................................................ 23
5.44
getTrackDecodeStatus ................................................................................................. 24
5.45
getSDKVersion ............................................................................................................... 24
5.46
sendCommandToDevice .............................................................................................. 24
5.47
setConfigurationParams .............................................................................................. 24
5.48
getConfigurationParams .............................................................................................. 25
MagTekSCRA Events ................................................................................................................ 26
6.1
DeviceEventStateChange ................................................................................................ 26
6.2
DeviceEventDataStart ...................................................................................................... 26
6.3
DeviceEventDataChange ................................................................................................. 26
6.4
DeviceEventDataError ...................................................................................................... 26
6.5
DeviceEventDataSample ................................................................................................. 27
MagTekAudioDevice Class Methods...................................................................................... 28
7.1
getMasterVolume .............................................................................................................. 28
7.2
setMasterVolume .............................................................................................................. 28
Commands ................................................................................................................................ 29
8.1
Discovery ............................................................................................................................ 29
Appendix A
A.1
Code Examples ...................................................................................................... 30
Open Device ....................................................................................................................... 30
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 6
1 Table of Contents
A.2
Close Device....................................................................................................................... 30
A.3
Get Connection Status Of Device ................................................................................... 30
A.4
Receiving Card Data From Device .................................................................................. 30
A.5
Send Command To Device .............................................................................................. 30
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 7
3 Introduction
1
Introduction
This document provides instructions for software developers who want to create software solutions that
include a MagTek Secure Card Reader / Authenticator (SCRA) device connected to a Windows PC’s full
duplex headset interface.
2
About MagTekSCRA
Custom Windows software installed on a host PC can communicate with a MagTek SCRA device via the
headset interface using the MagTekSCRA library. The software project must link to MagTekSCRA.dll.
Supported platforms include Windows 7, Windows 8, and Windows 8.1. The library will work with any
PC that has an integrated full duplex headset interface.
3
How to Set Up the Host PC
To set up the host PC to communicate with the MagTek SCRA device, follow these steps:
1) Download and unzip the MagTek SCRA Demo application from www.magtek.com.
2) Connect the device to the host’s headset interface.
3) Open the Windows Control Panel.
4) Open Sound .
5) Select the Playback tab.
6) Select the playback device that is connected to the SCRA device (for example, Speakers and
Headphones ).
7) Press the Properties button to launch the [device name] Properties window.
8) Select the Levels tab.
9) Set the volume at maximum. See Figure 3-1 for an example.
10) Select the Recording tab.
11) Select the headset interface that is connected to the SCRA device (for example, Headset Mic ).
12) Press the Properties button to launch the [device name] Properties window.
13) Select the Levels tab.
14) Turn any boost settings or other special volume settings completely off (for example, set
Microphone Boost ) to 0.0dB). See Figure 3-2 for an example.
15) If the [device name] Properties window has an Enhancements tab, select it.
16) Make sure all checkboxes in the Enhancements tab are turned off. See Figure 3-3 for an example.
17) If the [device name] Properties window has an Effects tab, select it.
18) If the Enhancements tab has a Disable System Effects checkbox, turn it ON. Turn all other
effects off. See Figure 3-4 for an example.
19) From the root of the MagTek SCRA Demo application, navigate to SampleCode\bin\Release\ and
launch MagTekSCRAWindowsDemo.exe to launch the MagTek SCRA Demo window.
20) Press the Connect button to launch a Connecting Card Reader window.
21) Press the OK button to close the Connecting Card Reader window.
22) Watch the MagTek SCRA Demo window for a log entry reporting Reader is connected . The
reader is now connected and ready to communicate with the host.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 8
3 How to Set Up the Host PC
Figure 3-1 Device Volume Level Set to 100
Figure 3-2 Microphone Boost Turned Off
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 9
3 How to Set Up the Host PC
Figure 3-3 Enhancements Turned Off
Figure 3-4 Effects Turned Off
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 10
4 How to Set Up the MagTek Windows SCRA SDK
4
How to Set Up the MagTek Windows SCRA SDK
To add the MagTek Windows SCRA libraries to a custom software project in Microsoft Visual Studio,
follow these steps:
1) Download and unzip the MagTek SCRA Demo application from www.magtek.com.
2) Create or open your custom software project in Visual Studio.
3) Copy the following DLL files from the MagTek SCRA Demo folders to the library folder of your
software project:
a) MagTekWindowsAudio.dll
b) MagTekWindowsSCRA.dll
4) In the Visual Studio Solution Explorer, right-click the project and select Add Reference to show the
Add Reference window.
5) Select the Browse tab and press the Browse… button.
6) Navigate to your library folder, select the MagTekWindowsSCRA.dll, and press the Add button.
7) In your custom software, create an instance of MagTekSCRA. For examples, see the source code
included with the MagTekSCRAWindowsDemo project and/or Appendix A Code Examples.
8) Begin using the features provided by the MagTekSCRA library. Details about each methods are
provided in section 5 MagTekSCRA Class Methods.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 11
5 MagTekSCRA Class Methods
5
MagTekSCRA Class Methods
After creating an instance of the MagTekSCRA class in your custom software project, use the methods
described in this section to communicate with DynaPro Mini.
5.1
openDevice
This function opens the reader.
public void openDevice()
Parameters: None
Return Value: None
5.2
closeDevice
This function closes the reader.
public void closeDevice()
Parameters: None
Return Value: None
5.3
isDeviceConnected
This function retrieves the connection status of the reader.
public bool isDeviceConnected()
Parameters: None
Return Value:
Return true if the device is connected. Otherwise, return false.
5.4
getMaskedTracks
Get stored masked tracks data. If decodable track data exists for a given track, it is located in the Masked
Track Data field that corresponds to the track number. The length of each Masked Track Data field is
fixed at 112 bytes, but the length of valid data in each field is determined by the Masked Track Data
Length field that corresponds to the track number. Masked Track Data located in positions greater than
indicated in the Masked Track Data Length field are undefined and should be ignored.
The Masked Track Data is decoded and converted to ASCII and then it is masked. The Masked Track
Data includes all data starting with the start sentinel and ending with the end sentinel. Much of the data is
masked; a specified mask character is sent instead of the actual character read from the track. Which
characters are masked depends on the format of the card. Only ISO/ABA (Financial Cards with Format
Code B) and AAMVA cards are selectively masked; all other card types are either entirely masked or sent
totally in the clear. There is a separate masking property for ISO/ABA cards and AAMVA cards. See the
ISO Track Masking property and the AAMVA Track Masking property for more information. See
99875475 for a description on how ISO/ABA and AAMVA cards are identified.
Each of these properties allows the application to specify masking details for the Primary Account
Number and Driver’s License / ID Number (DL/ID#), the masking character to be used, and whether a
correction should be applied to make the Mod 10 9 (Luhn algorithm) digit at the end of the number be
correct.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 12
5 MagTekSCRA Class Methods
public string getMaskedTracks()
Parameters: None
Return Value:
Return stored masked tracks data string.
5.5
getTrack1
Get stored track1 data. This field contains the encrypted track data for track 1.
public string getTrack1()
Parameters: None
Return Value:
Return stored track1 data string.
5.6
getTrack2
Get stored track2 data. This field contains the encrypted track data for track 2.
public string getTrack2()
Parameters: None
Return Value:
Return stored track2 data string.
5.7
getTrack3
Get stored track3 data. This field contains the encrypted track data for track 3.
public string getTrack3 ()
Parameters: None
Return Value:
Return stored track3 data string.
5.8
getTrack1Masked
Get stored masked track1 data.
public string getTrack1Masked()
Parameters: None
Return Value:
Return stored masked track1 data string.
For an ISO/ABA card, the PAN is masked as follows:
 The specified number of initial characters is sent unmasked. The specified number of trailing
characters is sent unmasked. If Mod 10 correction is specified, all but one of the intermediate
characters of the PAN are set to zero; one of them will be set such that last digit of the PAN calculates
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 13
5 MagTekSCRA Class Methods



an accurate Mod 10 check of the rest of the PAN as transmitted. If the Mod 10 correction is not
specified, all of the intermediate characters of the PAN are set to the specified mask character.
The Card Holder’s name and the Expiration Date are transmitted unmasked.
All Field Separators are sent unmasked.
All other characters are set to the specified mask character.
For an AAMVA card, the specified mask character is substituted for each of the characters read from the
card.
5.9
getTrack2Masked
Get stored masked track2 data.
public string getTrack2Masked()
Parameters: None
Return Value:
Return stored masked track2 data string.
For an ISO/ABA card, the PAN is masked as follows:
 The specified number of initial characters are sent unmasked. The specified number of trailing
characters are sent unmasked. If Mod 10 correction is specified, all but one of the intermediate
characters of the PAN are set to zero; one of them will be set such that last digit of the PAN calculates
an accurate Mod 10 check of the rest of the PAN as transmitted. If the Mod 10 correction is not
specified, all of the intermediate characters of the PAN are set to the specified mask character.
 The Expiration Date is transmitted unmasked.
 All Field Separators are sent unmasked.
 All other characters are set to the specified mask character.
For an AAMVA card, the DL/ID# is masked as follows:
 The specified number of initial characters are sent unmasked. The specified number of trailing
characters are sent unmasked. If Mod 10 correction is specified, all but one of the intermediate
characters of the DL/ID#PAN are set to zero; one of them will be set such that last digit of the
DL/ID# calculates an accurate Mod 10 check of the rest of the DL/ID# as transmitted. If the Mod 10
correction is not specified, all of the intermediate characters of the DL/ID# are set to the specified
mask character.
 The Expiration Date and Birth Date are transmitted unmasked.
 All other characters are set to the specified mask character.
5.10 getTrack3Masked
Get stored masked track3 data.
public string getTrack3Masked()
Parameters: None
Return Value:
Return stored masked track3 data string.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 14
5 MagTekSCRA Class Methods
For an ISO/ABA card, the PAN is masked as follows:
 The specified number of initial characters are sent unmasked. The specified number of trailing
characters are sent unmasked. If Mod 10 correction is specified, all but one of the intermediate
characters of the PAN are set to zero; one of them will be set such that last digit of the PAN calculates
an accurate Mod 10 check of the rest of the PAN as transmitted. If the Mod 10 correction is not
specified, all of the intermediate characters of the PAN are set to the specified mask character.
 All Field Separators are sent unmasked.
 All other characters are set to the specified mask character.
For an AAMVA card, the specified mask character is substituted for each of the characters read from the
card.
5.11 getMagnePrint
Supported on uDynamo only. This 128 byte Binary field contains the MagnePrint data. Only the number
of bytes specified in the MagnePrint data length field are valid. The least significant bit of the first byte
of data in this field corresponds to the first bit of MagnePrint data. If the Enable/Disable MagnePrint
property is set to disable MagnePrint, this field will not be sent.
public string getMagnePrint()
Parameters: None
Return Value: Empty String
5.12 getMagnePrintStatus
Supported on uDynamo only.
public string getMagnePrintStatus()
Parameters: None
Return Value: Empty String
This Binary field represents 32 bits of MagnePrint status information. Each character represents 4 bits
(hexadecimal notation). For example, suppose the characters are: “A1050000”:
Nibble
1
2
3
4
5
6
7
8
Value
A
1
0
5
0
0
0
0
Bit
7 6 5 4 3 2 1 0 1 1 1 1 1 1 9 8 2 2 2 2 1 1 1 1 3 3 2 2 2 2 2 2
5 4 3 2 1 0
3 2 1 0 9 8 7 6 1 0 9 8 7 6 5 4
Value
1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Usage*
R R R R R R R MR R R R R R R R 0 0 D 0 F L N S 0 0 0 0 0 0 0 0
Usage Legend:
 D = Direction
 F = Too Fast
 L = Too Slow
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 15
5 MagTekSCRA Class Methods



M = MagnePrint capable
N = Too Noisy
R =Revision
This four-byte field contains the MagnePrint status. The MagnePrint status is in little endian byte order.
Byte 1 is the least significant byte. Byte 1 LSB is status bit 0. Byte 4 MSB is status bit 31. MagnePrint
status is defined as follows:
 Bit 0 = MagnePrint-capable product (usage M)
 Bits 1-15 = Product revision & mode (usage R)
 Bit 16 = STATUS-only state (usage S)
 Bit 17 = Noise too high or “move me” away from the noise source (used only in STATUS) (usage N)
 Bit 18 = Swipe too slow (usage L)
 Bit 19 = Swipe too fast (usage F)
 Bit 20 = Unassigned (always set to Zero)
 Bit 21 = Actual Card Swipe Direction (0 = Forward, 1 = Reverse) (usage D)
 Bits 22-31 = Unassigned (always set to Zero)
If the Enable/Disable MagnePrint property is set to disable MagnePrint, this field will not be sent.
5.13 getDeviceSerial
Get stored device serial number. This 16-byte ASCII field contains the device serial number. The device
serial number is a NUL (zero) terminated string. So the maximum length of the device serial number, not
including the null terminator, is 15 bytes. This device serial number can also be retrieved and set with the
device serial number property explained in the property section of this document. This field is stored in
non-volatile memory, so it will persist when the unit is power cycled.
public string getDeviceSerial()
Parameters: None
Return Value:
Return stored device serial number.
5.14 getSessionID
Not suported on Audio Reader. This 8-byte Binary field contains the encrypted version of the current
Session ID. Its primary purpose is to prevent replays. After a card is read, this property will be
encrypted, along with the card data, and supplied as part of the transaction message. The clear text
version of this will never be transmitted. To avoid replay, the application sets the Session ID property
before a transaction and verifies that the Encrypted Session ID returned with card data decrypts to the
value set.
public string getSessionID()
Parameters: None
Return Value: Empty String
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 16
5 MagTekSCRA Class Methods
5.15 getKSN
Get stored key serial number. This 10-byte Binary field contains the DUKPT Key Serial Number used to
encrypt the encrypted fields in this message. This 80-bit field includes the Initial Key Serial Number in
the leftmost 59 bits and a value for the Encryption Counter in the rightmost 21 bits. If no keys are loaded,
all bytes will have the value 0x00.
public string getKSN()
Parameters: None
Return Value:
Return stored key serial number.
5.16 getDeviceName
Get device model name.
public string getDeviceName()
Parameters: None
Return Value:
Return device model name.
5.17 clearBuffers
Clears buffered data retrieved from the reader.
public void clearBuffers()
Parameters: None
Return Value: None
5.18 getBatteryLevel
Retrieves battery level.
public long getBatteryLevel()
Parameters: None
Return Value:
Battery Level (0 to 100)
5.19 getSwipeCount
Retrieves swipe count.
public long getSwipeCount()
Parameters: None
Return Value:
Long value representing swipe count
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 17
5 MagTekSCRA Class Methods
5.20 getCapMagnePrint
Retrieves MagnePrint Capabilities.
public string getCapMagnePrint()
Parameters: None
Return Value:
String representing MagnePrint capabilities:
0 = No MagnePrint,
1 = Short MagnePrint,
2 = Long MagnePrint
5.21 getCapMagnePrintEncryption
Retrieves MagnePrint Encryption Capabilities.
public string getCapMagnePrintEncryption()
Parameters: None
Return Value:
String representing MagnePrint Encryption capabilities:
0 = No Encryption,
1 = Same as MagStripe (8122),
other values TBD.
If absent, default value is 1.
5.22 getCapMagneSafe20Encryption
Retrieves MagneSafe 2.0 Encryption Capabilities.
public string getCapMagneSafe20Encryption ()
Parameters: None
Return Value:
String representing MagneSafe 2.0 Encryption Capabilities. 0 = Not supported, other values TBD.
5.23 getCapMagStripeEncryption
Retrieves MagneStripe Encryption Capabilities.
public string getCapMagStripeEncryption()
Parameters: None
Return Value:
String representing MagStripe Encryption Capabilities. 0 = No Encryption, 1 = TDES DUKPT / PIN
Variant, other values TBD
5.24 getCapMSR
Retrieves MSR Capabilities.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 18
5 MagTekSCRA Class Methods
public string getCapMSR()
Parameters: None
Return Value:
String representing MSR Capabilities. 0 = No MSR, 1 = MSR.
5.25 getCapTracks
Retrieves Track Capabilities.
public string getCapTracks()
Parameters: None
Return Value:
String representing Track Capabilities:
 Bit 0 = 1 / Track 1 supported,
 Bit 1 = 1 / Track 2 supported,
 Bit 2 = 1 / Track 3 supported,
 All other bits = 0.
5.26 getCardDataCRC
Retrieves CRC from card data.
public long getCardDataCRC()
Parameters: None
Return Value:
Card data CRC
5.27 getCardExpDate
Retrieves CRC from card data.
public string getCardExpDate ()
Parameters: None
Return Value:
String representing card expiration date.
5.28 getCardIIN
Retrieves Issuer Identification Number (IIN) from card data.
public string getCardIIN()
Parameters: None
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 19
5 MagTekSCRA Class Methods
Return Value: String representing card IIN
5.29 getCardLast4
Retrieves Last 4 digits of card number from card data.
public string getCardLast4()
Parameters: None
Return Value:
String representing card last 4 digits.
5.30 getCardName
Retrieves card name from card data.
public string getCardName()
Parameters: None
Return Value:
String representing card name
5.31 getCardPANLength
Retrieves PAN length from card data.
public int getCardPANLength()
Parameters: None
Return Value: PAN length.
5.32 getCardServiceCode
Retrieves Service Code.
public string getCardServiceCode()
Parameters: None
Return Value: String representing service code.
5.33 getCardStatus
Retrieves Card Status.
public string getCardStatus()
Parameters: None
Return Value:
String representing card status
Card status
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 20
5 MagTekSCRA Class Methods
Card Encode Type
This one-byte value indicates the type of encoding that was found on the card. The following table
defines the possible values.
Value
Encode Type
Description
0
ISO/ABA
ISO/ABA encode format. At least one track in ISO/ABA format, Track 3
not AAMVA format.
1
AAMVA
AAMVA encode Track 3 is AAMVA format, Tracks 1 and 2 are
ISO/ABA if correctly decoded.
2
Reserved
3
Blank
The card is blank. Only occurs if all tracks decode without error and
without data.
4
Other
The card has a non-standard encode format. For example, ISO/ABA
track 1 format on track 2.
5
Undetermined
The card encode type could not be determined because no tracks could be
decoded. (Combination of Error tracks and Blank Tracks, at least one
Error track).
6
None
No decode has occurred. This type occurs if no magnetic stripe data has
been acquired since the data has been cleared or since the reader was
powered on. This reader only sends an Input report when a card has been
swiped so this value will never occur.
5.34 getDataFieldCount
Retrieves data field count.
public int getDataFieldCount()
Parameters: None
Return Value:
Data field count
5.35 getHashCode
Retrieves SHA-x hash code.
public string getHashCode()
Parameters: None
Return Value:
String representing SHA-x hash code
5.36 getDeviceConfig
Retrieves device configuration.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 21
5 MagTekSCRA Class Methods
public string getDeviceConfig(string configType)
Parameters:
configType can be one of:
 8180: Send TLV Version on Power Up
 8181: Send Discovery on Power Up
 8280: Send Card name
 8281: Send Card IIN
 8282: Send Card Last 4 Digits of PAN
 8283: Send Card Expiration
 8284: Send Card Service Code
 8285: Send Card PAN Length
Return Value:
String representing device configuration
5.37 getEncryptionStatus
Retrieves encryption status. This two byte Binary field contains the Encryption Status. The Reader
Encryption Status is sent in big endian byte order. Byte 1 is the least significant byte. Byte 1 LSB is
status bit 0. Byte 2 MSB is status bit 15.
public string getEncryptionStatus()
Parameters: None
Return Value:
String representing decryption status as a 2-byte binary field.
 Bit 0 = DUKPT Keys exhausted (1=exhausted, 0=keys available)
 Bit 1 = Initial DUKPT key Injected, always set to One (Primary DUKPT Key)
 Bit 2 = Encryption Enabled, always set to One
 Bit 3 = Reserved (always set to zero)
 Bit 4 = Reserved (always set to zero)
 Bit 5 = Reserved (always set to zero)
 Bit 6 = Reserved (always set to zero)
 Bit 7 = Reserved (always set to zero)
 Bit 8 = Reserved (always set to zero)
 Bit 9 = Initial DUKPT key injected (Secondary DUKPT Key)
 Bit 10 = DUKPT Key used for encryption, 0=Primary, 1=Secondary
 Bit 11 = DUKPT Key Variant used to encrypt data, 0=PIN Variant, 1=Data Variant/Bidirectional
 Bits 12–15 = Unassigned (always set to Zero)
5.38 getFirmware
Retrieves firmware version.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 22
5 MagTekSCRA Class Methods
public string getFirmware()
Parameters: None
Return Value:
String representing firmware version
5.39 getMagTekDeviceSerial
Retrieves MagTek device serial number.
public string getMagTekDeviceSerial()
Parameters: None
Return Value:
String representing MagTek device serial number
5.40 getResponseData
Retrieves response data.
public string getResponseData()
Parameters: None
Return Value:
String representing response data
5.41 getResponseType
Retrieves response type.
public string getResponseType()
Parameters: None
Return Value:
String representing response type. For Audio Reader, always “C101”.
5.42 getTagValue
Retrieves the value of the specified tag.
public string getTagValue(string tag, string data)
Parameters: None
tag
Tag to search for
data
Data to search from
Return Value: String representing tag value
5.43 getTLVVersion
Retrieves TLV version.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 23
5 MagTekSCRA Class Methods
public string getTLVVersion()
Parameters: None
Return Value:
String representing TLV version as a two-byte hex string.
5.44 getTrackDecodeStatus
Retrieves track decode status. This is a one-byte value, which indicates the status of decoding track 1.
Bit position zero indicates if there was an error decoding track 1 if the bit is set to one. If it is zero, then
no error occurred. If a track has data on it that is not noise, and it is not decodable, then a decode error is
indicated. If a decode error is indicated, the corresponding track data length value for the track that has
the error will be set to zero and no valid track data will be supplied.
public string getTrackDecodeStatus()
Parameters: None
Return Value:
Track Decode Status. Consists of three 2-byte hex values representing the decode status for tracks 1, 2,
and 3 (respectively from left to right). Values are:
 00 = Track OK
 01 = Track read Error
 02 = Track is Blank
5.45 getSDKVersion
Retrieves SDK version.
public string getSDKVersion()
Parameters: None
Return Value: SDK Version
5.46 sendCommandToDevice
Send command to device.
public void sendCommandToDevice(string command)
Parameters:
command is the command string to send to the device.
Return Value:
Send command to device. Please refer to 8 Commands for a list of valid commands.
5.47 setConfigurationParams
Sets configuration Parameters.
public void setConfigurationParams(string configParams)
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 24
5 MagTekSCRA Class Methods
Parameters:
configParams can be one of the following (default is TRUE):
PAN_MOD10_CHECKDIGIT = TRUE
PAN_MOD10_CHECKDIGIT = FALSE
5.48 getConfigurationParams
Retrieves configuration Parameters.
public string getConfigurationParams()
Parameters: None
Return Value: String respresenting configuration parameters.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 25
6 MagTekSCRA Events
6
MagTekSCRA Events
6.1
DeviceEventStateChange
Occurs when connection state is changed.
public event DeviceEventStateChangeHandler DeviceEventStateChange
public delegate void DeviceEventStateChangeHandler(object sender, int
state)
Parameter
Description
sender
Object representing the publisher of the event
state
Value representing the connection state of the device.
MagTekSCRA.DEVICE_STATE_DISCONNECTED
MagTekSCRA.DEVICE_STATE_CONNECTED
MagTekSCRA.DEVICE_STATE_CONNECTING
MagTekSCRA.DEVICE_STATE_CANNOT_CONNECT
6.2
DeviceEventDataStart
Occurs when data transmission is started.
public event DeviceEventDataStartHandler DeviceEventDataStart
public delegate void DeviceEventDataStartHandler(object sender)
Parameter
sender
6.3
Description
Object representing the publisher of the event
DeviceEventDataChange
Occurs when data transmission is completed.
public event DeviceEventDataChangeHandler DeviceEventDataChange
public delegate void DeviceEventDataChangeHandler(object sender,
string data)
Parameter
Description
sender
Object representing the publisher of the event
data
String representing data received.
6.4
DeviceEventDataError
Occurs when data has error.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 26
6 MagTekSCRA Events
public event DeviceEventDataErrorHandler DeviceEventDataError
public delegate void DeviceEventDataErrorHandler(object sender, string
error)
Parameter
Description
sender
Object representing the publisher of the event
error
String representing error received.
6.5
DeviceEventDataSample
This notification is received when a sample of data is available.
public event DeviceEventDataSampleHandler DeviceEventDataSample
public delegate void DeviceEventDataSampleHandler(object sender, short
value)
Parameter
Description
sender
Object representing the publisher of the event
value
Value representing a sample of data received.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 27
7 MagTekAudioDevice Class Methods
7
MagTekAudioDevice Class Methods
The MagTekAudioDevice class allows custom software to perform audio device functions.
7.1
getMasterVolume
This function retrieves the audio level of the master volume control.
public static float getMasterVolume()
Parameters: None
Return Value: The audio level in the range of 0.0 (minimum) to 1.0 (maximum).
7.2
setMasterVolume
This function sets the audio level of the master volume control.
public static void setMasterVolume(float volume)
Parameters: Volume is the audio level in the range of 0.0 (minimum) to 1.0 (maximum).
Return Value: None
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 28
8 Commands
8
Commands
Custom software can use the sendCommandToDevice method to send direct commands to the device.
This section provides information about commonly used commands.
8.1
Discovery
To send a Discovery command to device, use:
public void sendCommandToDevice(string command)
Parameters: Use “C10206C20503840900” as command string.
Return Value:
The following device information will be retrieved.
Device SN, internal: Device serial number created by chip manufacturer. Use getDeviceSerial
method to retrieve data.
Device SN, MagTek: Device serial number created by MagTek. Use getDeviceSerialMagTek
method to retrieve data.
Device Firmware Part Number: Device firmware part number. Use getFirmware method to retrieve
data.
Device Model Name: Device model name. Use getDeviceName method to retrieve data.
Device TLV Version: Device TLV version. Use getTLVVersion method to retrieve data.
Device Part Number: Device part number. Use getDevicePartNumber method to retrieve data.
Capability - MSR: 0 = No MSR, 1 = MSR. Use getCapMSR method to retrieve data.
Capability - TRACKS:
 0 = Supported tracks: None.
 1 = Supported tracks: Track1.
 2 = Supported tracks: Track2.
 3 = Supported tracks: Track1, Track2.
 4 = Supported tracks: Track3.
 5 = Supported tracks: Track1, Track3.
 6 = Supported tracks: Track2, Track3.
 7 = Supported tracks: Track1, Track2, Track3.
Use getCapTracks method to retrieve data.
Capability - MagStripe Encryption: 0 = No Encryption, 1 = TripDES DUKPT. Use
getCapMagStripeEncryption method to retrieve data.
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 29
Appendix A Code Examples
Appendix A
A.1
Code Examples
Open Device
if (! mMTSCRA.isDeviceConnected())
{
mMTSCRA.openDevice();
}
A.2
Close Device
if (mMTSCRA != null)
{
mMTSCRA.closeDevice();
}
A.3
Get Connection Status Of Device
if (! mMTSCRA.isDeviceConnected())
{
}
A.4
Receiving Card Data From Device
if (! mMTSCRA.isDeviceConnected())
{
mMTSCRA.DeviceEventDataChange += OnDeviceEventDataChange;
mMTSCRA.openDevice();
}
public void OnDeviceEventDataChange(Object sender, string data)
{
// Display raw card data
CardData.Text = data;
// Display last 4 digits of the card
CardLast4.Text = mMTSCRA.getCardLast4();
}
A.5
Send Command To Device
if (mMTSCRA.isDeviceConnected())
{
// Send discovery command
mMTSCRA.sendCommandToDevice(“C10206C20503840900”, 0);
}
SCRA Reader| Audio Reader Family | Programmer’s Reference (Windows)
Page 30
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement