GetRequestDataToMAC Method
Returns a string of data for the PIN pad to hash with the MAC algorithm.
Syntax
public String getRequestDataToMAC();
Remarks
Each transaction you send (excluding RequestCurrentKeys and MACReversals) requires an accompanying MACValue. This value is a hash of the contents of GetRequestDataToMAC, and is hashed by the PIN Pad device using the MACKey returned in response to the last transaction.
The GetRequestDataToMAC method returns a string containing the values of several transaction properties. This string must be MAC'ed by the PIN pad, so it is essential that the following properties be set before calling GetRequestDataToMAC:
- MerchantNumber
- TerminalNumber
- InteracTransactionType
- CardTrack2Data
- TransactionAmount
- SequenceNumber
- and optionally AccountType
Note that VeriFone pinpads support a PURCHASE transaction where the CardTrack2Data, EncryptedPIN, AccountType, and MACValue are returned in a single step. When using a VeriFone pad make sure AccountType is set to acctNotSet, otherwise the MACValue will not be calculated correctly. (AccountType must be set before calling GetRequestDataToMAC for Ingenico pads)
bean.MerchantNumber = "yourMerchantNumber" bean.TerminalNumber = "100" bean.ClientNumber = "0002" bean.UserId = "yourUserId" bean.Password = "yourPassword" bean.SequenceNumber = 2 bean.TransactionAmount = "1.00" bean.PinPadSerialNumber = "30700015P3600000" ' from label on back of PIN pad bean.InteracTransactionType = ittSale bean.AccountType = acctChecking bean.CardTrack2Data = "9999999800002773=05121015432112345678" ' from card reader bean.EncryptedPIN = "FFFFFFFFFFFFFFFF" ' from the PIN pad ' Now use the PIN pad to MAC the value returned from GetRequestDataToMAC ' and then set MACValue with the results bean.MACValue = "FFFFFFFF" bean.Authorize()