Reading Loyalty and Bonus Cards
In addition to processing transactions with
payment cards such as Visa and Mastercard, the
TransactionProvider
also makes it easy for your device to read
the card number (PAN) from Loyalty or Bonus Cards with magstripes. Currently only
Miura card readers can read Loyalty or Bonus Cards. In order to ensure the highest security standards and to not read the payment card PAN , the
BIN (i.e., the first six digits) of your loyalty
or bonus card scheme must specifically be
white-listed by us and never overlap with the BINs
used by payment cards.
Contact your account manager to determine if this feature will work with
your specific loyalty or bonus card scheme.
Reading a Loyalty or Bonus Card with a Magstripe
Call
readCard
on your TransactionProvider
and implement the ReadCardProcessListener
. After a successful swipe,
CardDetails
will contain the unencrypted cardNumber
and raw track1
, track2
and track3
data.transactionProvider.readCard(accessoryParameters, new ReadCardProcessListener() { @Override public void onCompleted(CardProcess cardProcess, CardProcessDetails cardProcessDetails) { if(cardProcessDetails.getState() == CardProcessDetailsState.COMPLETED) { CardDetails details = cardProcess.getCardDetails(); if(details.getMaskedCardNumber() != null) { Log.d("mpos", "MaskedCardNumber: " + details.getMaskedCardNumber()); } if(details.getCardNumber() != null) { Log.d("mpos", "CardNumber: " + details.getCardNumber()); } if(details.getTrack1() != null) { Log.d("mpos", "Track1: " + details.getTrack1()); } if(details.getTrack2() != null) { Log.d("mpos", "Track2: " + details.getTrack2()); } if(details.getTrack3() != null) { Log.d("mpos", "Track3: " + details.getTrack3()); } } } @Override public void onStatusChanged(CardProcess cardProcess, CardProcessDetails cardProcessDetails) { Log.d("mpos", "status changed: " + Arrays.toString(cardProcessDetails.getInformation())); } });