stripe / stripe-terminal-android

Stripe Terminal Android SDK
https://stripe.dev/stripe-terminal-android/
Other
84 stars 44 forks source link

Card reader overheating and crashing #455

Closed 1970578978 closed 4 weeks ago

1970578978 commented 4 months ago

Summary

I used a USB connected card reader, and when I kept keeping the reader in collectPaymentMethod mode, I found that the reader would heat up. So I want to know if the card reader supports maintaining the collectPaymentMethod state for a long time? When the card reader is in collectPaymentMethod, I unplug the USB of the card reader and repeat it three to four times before the card reader crashes

Code to reproduce

` @NotNull private final PaymentIntentCallback createPaymentIntentCallback = new PaymentIntentCallback() { @Override public void onSuccess(@NotNull PaymentIntent intent) { if(!task_run){ return; } cancelCollectTask(); viewModel.collectTask = Terminal.getInstance().collectPaymentMethod( intent, collectPaymentMethodCallback); } @Override public void onFailure(@NotNull TerminalException e) { e.printStackTrace(); } };

@NotNull private final PaymentIntentCallback collectPaymentMethodCallback = new PaymentIntentCallback() {
    @Override
    public void onSuccess(@NotNull PaymentIntent paymentIntent) {
        Terminal.getInstance().processPayment(paymentIntent, processPaymentCallback);

        final MainActivity activity = activityRef.get();
        if(activity != null){
            activity.runOnUiThread(activity::navigateToRentPosProcess);
        }
        viewModel.collectTask = null;
    }

    @Override
    public void onFailure(@NotNull TerminalException e) {
        e.printStackTrace();
    }
};`

Android version

Android 10

Impacted devices (Android devices or readers)

SDK version

2.23.0

Other information

ugochukwu-stripe commented 4 months ago

Hi, could you talk a bit more about the "reader crashing". Could you share the serial of the reader you're testing with and a stack trace of the crash you're seeing. Terminal operations including collectPaymentMethod have a timeout, so you wouldn't be able to leave a reader in collect mode forever.

1970578978 commented 4 months ago

Hi, could you talk a bit more about the "reader crashing". Could you share the serial of the reader you're testing with and a stack trace of the crash you're seeing. Terminal operations including collectPaymentMethod have a timeout, so you wouldn't be able to leave a reader in collect mode forever.

Hello, I unplugged the card reader before the reader crashed, I only see the sdk returns session timeout exception.I can provide the serial number:STRM26232012070 The card reader is in a crashing state with no lights on, even if I charge it. When I used a paper clip to press the reset button next to the charging port, the card reader returned to normal. Thank you for your answer

gliu-stripe commented 4 months ago

@1970578978 Looking at our logs, this looks similar to an issue we saw in the past which we patched in 3.2.1 (https://github.com/stripe/stripe-terminal-android/blob/master/CHANGELOG.md#321---2023-12-18)

Fix: Improved response time for detecting reader disconnection during a payment.

I recommend upgrading to 3.2.1 or later. Let me know if you still encounter the issue then!

1970578978 commented 4 months ago

@1970578978 Looking at our logs, this looks similar to an issue we saw in the past which we patched in 3.2.1 (https://github.com/stripe/stripe-terminal-android/blob/master/CHANGELOG.md#321---2023-12-18)

Fix: Improved response time for detecting reader disconnection during a payment.

I recommend upgrading to 3.2.1 or later. Let me know if you still encounter the issue then!

Thank you for your feedback, but I just tested using SDK 3.5.0 and still have the same issue. Unplug the card reader while in collectPaymentMethod mode, causing the card reader to crash.

I only tested the M2 card reader(STRM26232012070), but I haven't tested the BBPOS WisePad 3

zakh-stripe commented 1 month ago

@1970578978 Hi, sorry to hear that you are still encountering the issue.

I'm trying to reproduce this crash but I am unable to do so. If you are still encountering this issue, can you provide more instructions on how to reproduce and the serial number for the device used. I tried looking at the logs from STRM26232012070 but they are from too long ago.

I'm curious how long are you leaving your reader in the collectPaymentMethod state.

sjl-stripe commented 4 weeks ago

Closing due to inactivity, feel free to open a new issue if you're still experiencing the same error.