Card Reader Troubleshooting

Overview

This document describes how to troubleshoot the Stripe Wise POS reader. It explains how the communication between Molo and the reader works and provides hints on how to find any issues.

Requirements

  1. The reader needs to be able to access the Internet and all of the Stripe domains must be accessible. If you have domain blocking enabled, check this list and make sure these domains are whitelisted: https://docs.stripe.com/ips#stripe-terminal-domains. 

  2. The reader needs to have a static IP address. You will need to configure this in your router/network settings. While the application may work if the IP of the reader changes, the default reader setting relies on the IP being static.

  3. The computer on which the Molo web app is running must be able to communicate with the reader directly over the local network.

Troubleshooting

Check Reader Connectivity

Open the reader’s diagnostics screen. Verify that:

  1. DNS Resolution says Passed

  2. Stripe Connectivity says Passed

Move on to the next section if all tests were successful.

On the reader, find the reader ip address

On the computer running MOLO, run a ping command against the reader’s IP to verify that the computer can reach the reader. The reader’s IP address can be found in the Molo Application or in the reader’s diagnostics settings.


ping 192.168.50.4


If you get a response back from the reader, you can move on to the next section.


Try to Capture a Payment

In the Molo application browser tab, open the developer tools network tab. Then attempt to capture a credit card payment in the application using the card reader. In the network tab filter out requests going to stripe-terminal-local-reader.net or JackRabitService. You will likely see failed requests. Copy the full domain name of the request. It will be something like 


https://192-168-50-4.zo7436brttx3gydqaize.device.stripe-terminal-local-reader.net:4443/protojsonservice/JackRabbitService


Use nslookup to obtain the ip address for that domain name. Something like this:

nslookup 192-168-50-4.zo7436brttx3gydqaize.device.stripe-terminal-local-reader.net


This should return the IP address of the reader. If you are unable to resolve that domain name, then you may need to use a different DNS server or remove any blacklists on that domain (or whitelist it).

If you are able to get an IP resolved, then move on to the next section.


Try Connecting directly to the Reader

We will use curl to try to connect directly to the reader. This will let us know if we are able to reach the reader service:


curl -v https://192-168-50-4.zo7436brttx3gydqaize.device.stripe-terminal-local-reader.net:4443/protojsonservice/JackRabbitService

This will return a 405 error. That is OK. The important thing is to see if we are able to connect successfully to the reader and get a response back from the service.

If the above command does not return a 405 error try to verify the connection to the host on the port by using these commands:

mac/linux


nc -v 192.168.50.4 4443


Windows PowerShell


Test-NetConnection -Port 4443 -ComputerName 192.168.50.4


If these tests don’t succeed, you likely have a local firewall or networking issue. Your network support person might be able to help.


Connection Process Review

This section describes how the Molo application connects to the Stripe reader. 


Once the reader is registered and connected to the local network, it will register itself in Stripe and will provide a hostname such as:

192-168-50-4.zo7436brttx3gydqaize.device.stripe-terminal-local-reader.net


Stripe will then send this domain name to the browser/molo application. When taking a payment using the reader, the browser will attempt to connect to the JackRabbitService using a URL similar to this: 

https://192-168-50-4.zo7436brttx3gydqaize.device.stripe-terminal-local-reader.net:4443/protojsonservice/JackRabbitService


In order to successfully connect the Molo Application to the reader, the following must be true:

  1. The reader was able to connect to Stripe and provide its local IP / host name.

  2. The computer running Molo must be able to resolve the domain name assigned to the reader to a local network addressable IP..

  3. The computer must be able to connect to the reader over the network using the resolved IP and port 4443.