I’ve been writing in another post (WEIRD problem with my square terminal) about another problem I was having. Turns out doing the pinging strategy I describe above causes the device to take an unacceptable length of time before it would acknowledge the checkout request. Oddly, if I touched the screen while waiting, the device would immediately acknowledge the request.
I make mention of this here so people don’t go doing what I did. Our best bet is to wait for the devs to provide a solid endpoint for this kinda thing. Trying to do anything close to real time with the provided APIs seems to cause the device/service to behave oddly.