question

ackroo avatar image
ackroo asked ackroo answered

Flex 3 swiping issue in Production!!!!

We are getting a steady stream or reports that our merchants cannot swipe our gift cards on the new Flex 3 terminals.

Swiping works with everything else.


Can someone please confirm if the flex 3 is configured with the same BIN whitelisting as the Flex 2?


Clover Flex
1 comment
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

ackroo avatar image ackroo commented ·

When our code is getting the track numbers. it looked like this:

1683812668658.pngWhen we got a merchant to do a swipe the info came back as:

1683812851810.png


Because this logic has worked for quite sometime and only started failing recently, I suspect that a breaking change was introduced with a package update to clover terminals.

I have a build ready to go to prove this but it is still in a pending state. I know it was opened yesterday at ~11:45 AM EST because of a message in Rollbar.


Please respond!!!!

0 Likes 0 ·
Manish avatar image
Manish answered ackroo commented

Hello, can you please share the merchant/device id?

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

ackroo avatar image
ackroo answered ackroo edited


When our code is getting the track numbers. it looked like this:

1683813628266.png


When we got a merchant to do a swipe the info came back as:

1683813637436.png


Because this logic has worked for quite sometime and only started failing recently, I suspect that a breaking change was introduced with a package update to clover terminals.

I have a build ready to go to prove this but it is still in a pending state. I know it was opened yesterday at ~11:45 AM EST because of a message in Rollbar.


Please respond!!!!


1683813628266.png (112.5 KiB)
1683813637436.png (12.2 KiB)
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

ackroo avatar image
ackroo answered

I am able to confirm that something changed and now the check to get the track number must now include a length check.

if(resultCode == RESULT_OK && data != null) {
    PaymentRequestCardDetails cardDetails = data.getParcelableExtra(EXTRA_CARD_DATA);
    String track1 = cardDetails.getTrack1();
    String track2 = cardDetails.getTrack2();
    String track3 = cardDetails.getTrack3();
    if (cardDetails != null) {

        // This was the old card extraction method
        // using != null
        String oldCardExtraction = "";
        if (track1 != null) {
            oldCardExtraction = track1;
        } else if (track2 != null) {
            oldCardExtraction = track2;
        } else if ( track3 != null) {
            oldCardExtraction = track3;
        }

        // This is testing the new card extraction method
        // using !isEmpty !( str == null && str.length() == 0 )
        if (!isEmpty(track1)) {
            cardNumber = track1;
        } else if (!isEmpty(track2)) {
            cardNumber = track2;
        } else if (!isEmpty(track3) ) {
            cardNumber = track3;
        }

        try {
            AckrooMerchant merchant = AckrooMerchant.instance(getApplicationContext());
            JSONObject trackData = new JSONObject();
            trackData.put("track1", track1);
            trackData.put("track2", track2);
            trackData.put("track3", track3);
            trackData.put("user", merchant.getEmployeeName());
            trackData.put("mid", merchant.getMerchantId());
            trackData.put("clover_token", merchant.getCloverToken());
            trackData.put("old_card_extraction", oldCardExtraction);
            trackData.put("new_card_extraction", cardNumber);
            Utils.sendLogToAckrooRollbar(trackData.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    if (cardNumber.contains("*")) {
        errorMessage.setText(getResources().getString(R.string.cardnumberContainsStars));
    } else {
        number.setText(parseCardNumber(cardNumber));
        continueButton.performClick();
    }
}


The resulting log (abbr);

{

"track1": "",

"track2": "6038**************=0000000000000",

"user": "NA",

"old_card_extraction": "",

"new_card_extraction": "6038**************=0000000000000"

}



10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Welcome to the
Clover Developer Community