question

thoughtspacewebsites avatar image
thoughtspacewebsites asked thoughtspacewebsites answered

Issue with SNPD and resetDevice method

Hey Guys,

We've currently got about 15 - 20 Clover devices running in store using the secure network pay display app for a semi integration with our registers. Every now and then, we'll go to process a payment on a device with connector.sale(saleRequest), and instead of going through, it will send back a response of "existing_payment". This happens even if there is no payment up on the screen on the Clover device. In these situations, our app is set up to present a button to the merchant to allow them to reset the clover device by calling the "resetDevice" method. This seems to work and returns a successful response, but the next time we try to process a sale, the same "existing_payment" response comes back again. So far, the only fix has been a full unpairing of the device, rebooting both devices, and then repairing. Sometimes, we even need to swap the Clover device with another machine in order to make the issue go away.

Clearly in these instances, we don't actually have a pending transaction, yet for some reason the API seems to think we do. I'm not sure exactly what could cause this, but it makes it real difficult when we're in full swing and an entire line goes down because of this issue.

Is there any other method I should be calling than the "resetDevice" method in order to clear this? Any other idea why we would encounter this issue? It happened to us last weekend on a machine on Friday, Saturday, and Sunday, once each day. It seems very random and hasn't happened since then though. Very tough to replicate honestly.

Anyway, please do let me know your thoughts on this and how to best proceed. Thanks!

Clover Minisecure network pay display
10 |2000

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

thoughtspacewebsites avatar image
thoughtspacewebsites answered

Just a follow up, we had this happen again today on the same register, really not sure what's causing this or how to clear it out. Please do let me know if you guys have any insight here, this is really messing up our flow.

10 |2000

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

kishoresukumaran avatar image
kishoresukumaran answered

Hi, can you please help me with sample payment ids? where this issue was encountered?
Also since when are you using this setup? Has this issue been since day 1 or started occurring only lately? Would you be able to share a video of this issue flow? I would like to have a look at the issue itself when it occurs?
Also if you have a look here - https://docs.clover.com/docs/payment-response-reference

payment.transactionSettings.disableDuplicateCheck

^ If true, the device did not check whether the current payment may be a duplicate of an existing payment.
What I guess is that the clover device is thinking the new payment is a duplicate of an already existing payment and this needs to be handled.

Please check in this topic of semi-integration which talks about duplicate check -
https://docs.clover.com/docs/using-per-transaction-settings#duplicate-checking

Let me know if that helped.

10 |2000

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

thoughtspacewebsites avatar image
thoughtspacewebsites answered

This is a very good guess and I would imagine worth testing. We do sometimes frequently have order with similar totals, and I could imagine them getting flagged as duplicates.

We used the remote pay cloud javascript integration for our environment, and it looks like the "setDisableDuplicateCheck" method was never fully implemented here when I look on the github. Still, it looks like I can just set the boolean value through saleRequest.disableDuplicateCheck = true, which I imagine should be good.

Can you verify if this is the proper way to handle this, and also if there are any other downfalls or gotchas we should be aware of with using disabling duplicate checking? (outside, of course, of possible duplicates)

10 |2000

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

thoughtspacewebsites avatar image
thoughtspacewebsites answered

Also, it's tough to get a video because it isn't always reproducable, and I also can't get transaction IDs, because we can never actually get the transactions to go through. It's as if the Clover device won't allow us to even start the transaction because it returns the "existing_payment" code and never actually starts into the payment flow. Hoping this is because of the duplicates though, so if we can just verify the proper way to disable those in the JS environment (regarding using a direct boolean assignment as opposed to a getter / setter method), then I can test that out and see if it clears up the issue!

10 |2000

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

thoughtspacewebsites avatar image
thoughtspacewebsites answered

Just following back up here to see if this is indeed the proper way to disable duplicate checking with the JS SDK. Can you guys please let me know? Thanks.

10 |2000

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

thoughtspacewebsites avatar image
thoughtspacewebsites answered

Two weeks later and still no reply from Clover's team at all, very disappointing. We ended up having to trial and error in our production environment to answer our own question. For anyone in the future that finds this, the answer was indeed duplicate checking, and my method of disabling it above did turn out to be correct it would appear.

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