I'm attempting to implement the UPS plugin in a production environment and running into a problem. On both my local environment and a staging environment at another live domain, the plugin returns applicable and valid shipping methods + amounts as expected, but on the production domain, no methods are returned. The access key I'm using is approved for production access on all UPS API services except for those related to ground freight, which are unrelated. Any ideas what could be going on? Is there anywhere that the UPS plugin might be throwing any helpful errors?

EDIT: Managed to pull out a PHP error for the request.

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 59: Unknown cipher in list: TLSv1 [url] https://onlinetools.ups.com/ups.app/xml/Rate' in [PATH]/html/assets/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php:338 Stack trace: #0 [PATH]/html/assets/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(279): Guzzle\Http\Curl\CurlMulti->isCurlException(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #1 [PATH]/html/assets/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(244): Guzzle\Http\Curl\CurlMulti->processResponse(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #2 [PATH]/html/assets/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(227): Guzzle\Http\Curl\CurlMulti->processMessages() #3 [PATH] in [PATH]/html/assets/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php on line 338

(Ran into this after migrating servers. I'm adding this in case it helps someone, but my knowledge in this area is limited.)

Referencing:

  1. https://codedump.io/share/OGU01YSrIGAZ/1/paypal-sdk-adaptive-payments-unknown-cipher-in-list-tlsv1

  2. https://stackoverflow.com/questions/26882530/paypal-sdk-adaptive-payments-unknown-cipher-in-list-tlsv1

Check CURL info on the server see if [ssl_version] => NSS... Since NSS was used on the new server, I commented out the use of CURLOPT_SSL_CIPHER_LIST in the UPS module (see the referenced links):

Line 143 of /store_ups/ApiRequest.php

/* $request->getCurlOptions()->set(CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); */

Works for now and connecting successfully to UPS again...

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.