Omnipay Paypal Express SSL Error

<%- if @topic_view.topic.tags.present? %>
<%= t 'js.tagging.tags' %>: <%- @topic_view.topic.tags.each do |t| %> <%= t %> <%- end %>
<% end %>

Silverstripe Version: 4.4

Question:

Hi everyone! I’m using SilverShop with the silverstripe/omnipay module and I’ve configured a PayPal Express payment gateway. I’m using the PayPal Sandbox to test the website, and when submitting the checkout order form I get the following error:

[2020-05-19 15:42:45] error-log.ERROR: Uncaught Exception Guzzle\Http\Exception\CurlException: "[curl] 56: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 104 [url] https://api-3t.sandbox.paypal.com/nvp?METHOD=SetExpressCheckout&VERSION=85.0&USER=..." at /home/tomtek69/public_html/new/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php line 359

I don’t know where to start with this one! I’m not sure if this is a server configuration issue, Silverstripe, Guzzle, Omnipay or PayPal. Can anyone shed some light on this for me?

Any pointers would be much appreciated, thanks.

Do you have the PHP openSSL extension enabled on the server?
A quick phpinfo() screen should display the details

Good suggestion! Just checked and yes OpenSSL support is enabled.

My understanding is that SilverShop only supports v2 of the silverstripe/omnipay library, which in turn supports PayPal Express which is now deprecated in favour of a REST API which is not supported until Omnipay v3. I’m assuming this isn’t the issue, but rather something more fundamental.

I wonder if it could be an authentication issue? I’ve changed the PayPal sandbox password to an incorrect one in my YML file and still get the same error.

Thanks for coming back to me, any more ideas would be appreciated!