3

@Sam Here's my problem in detail.

The problem occurs on our production Clover Mini devices only, the same code snippet works perfectly fine on sandbox Mini & Station plus on production Station.

We did reproduce the error on our merchant's device with the ID of MMPGPHJ3C2EXJ and sent a device log from the help app at the following timestamp: 1493981820

The error message we are getting:

javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x6aef3008: Failure in SSL library, usually a protocol error error:14077410:SSL routines:SSL23GETSERVERHELLO:sslv3 alert handshake failure (external/openssl/ssl/s23clnt.c:744 0x68532ce0:0x00000000)

The corresponding code is about paying for a freshly created order.

Snippets:

Get order created in the previous step:

mCreatedOrder = mOrderConnector.getOrder(mOrderID);

Declare json body to be sent:

JSONObject paymentParamsBody = new JSONObject();
paymentParamsBody.put("tender", new JSONObject());
paymentParamsBody.getJSONObject("tender").put("id", mPaymentTender.getId());
paymentParamsBody.put("amount", mCreatedOrder.getTotal());

Fire the http post to pay for the order

final MediaType JSON = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String url = mBaseURL + "/v3/merchants/" + mMerchant.getId() + "/orders/" + mCreatedOrder.getId() + "/payments?access_token=" + MyApplication.getAuthToken();
String json = paymentParamsBody.toString();

RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder().url(url).post(body).build();
Response response = client.newCall(request).execute();

asked 2017-05-05 07:00:52 -0500

Dnalor gravatar image
Comments

@Dnalor I ran tests on my prod Mini and wasn't able to reproduce the error. What's the full url you're hitting? Are you possibly pinning cert on the device or inserting cert into the TrustStore? Could you send me the device id in question to dev@clover.com?

Looking at the error log specifically, it looks like it's using the SSLv3 protocol rather than the default TLS. http://stackoverflow.com/questions/29...

Sam gravatar image
Sam 2017-05-05 15:36:35 -0500

1 answer

Sort by  
0

If only I had enough Karma to upvote this.

answered 2017-05-05 08:07:45 -0500

PaulBrendanConroy gravatar image