Answers.Body: <p>Turns out the issue was our server's operating system. <strong>We were on CentOS 5.5, and it doesn't support OpenSSL higher than 0.9.8. We had to upgrade to a new server.</strong> We decided on a CentOS 7 server and are in the process of migrating. The CentOS 7 server came with OpenSSL 1.0.2 installed. I setup and tested our connection with iATS today and had it working in no time at all. Hooray!</p>
  
  <p>While I had manually updated OpenSSL, I neglected to update it with our server's package manager (and our website would only recognize what the package manager was using). But it turns out with CentOS 5.5, the <code>yum</code> package manager only goes up to 0.9.8e. There was no way around it.</p>
  
  <p>There are so many benefits to CentOS 7 over 5.5, even with all the migration work, I'm glad we made the change.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-27T01:05:33.920Z
Answers.Text: Had the exact same issue. Please report your findings if the extension is working for you. For me, on CV 4.7.11 on J!3.6.2, the webform is not advancing to the confirmation page once the transaction is successful.
Answers.UserDisplayName: BruceW
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-27T01:36:21.417Z
Answers.Text: Extension is working great, now that we made the change to CentOS 7.
Answers.UserDisplayName: Allen Hutchison
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-28T18:48:16.160Z
Answers.Text: Okay, then looks like its something in my codebase. Thanks for your experience.
Answers.UserDisplayName: BruceW
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-17T04:35:27.300Z
Answers.LastActivityDate: 2016-06-17T04:47:12.307Z
Answers.LastEditDate: 2016-06-17T04:47:12.307Z
Answers.UserDisplayName: Allen Hutchison
Body: <p>We are a new iATS client and have hit a bit of a roadblock.</p>
  
  <p>I followed the iATS extension <a href="https://github.com/iATSPayments/com.iatspayments.civicrm" rel="nofollow">instructions here</a> for setting up the payment processor.  On my local dev environment, things went great and I was able to process a contribution using the TEST88 information without a problem.</p>
  
  <p>When I tried to set up the iATS payment processor on our live production server and tried a contribution in the same manner, I received a white screen with the following error:</p>
  
  <blockquote>
    <p>Fatal error: Call to a member function __getLastResponseHeaders() on a
    non-object in
    /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php
    on line 202</p>
  </blockquote>
  
  <p>Following the debug advice from the iATS instructions (I turned on Drupal/CiviCRM logging) and tried again.  I received the same white screen and error.  I checked the Drupal logs and received the following error, notice and warnings:</p>
  
  <blockquote>
    <p><strong>Type: civicrm_iatspayment_com</strong> SoapFault: SoapFault Object (
        [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from '<a href="https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL" rel="nofollow">https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL</a>' :
    failed to load external entity
    "<a href="https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL" rel="nofollow">https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL</a>"
    [the error in the logs is rather long and shows sensitive information, so I've truncated it]</p>
    
    <p><strong>Type: php</strong> --  Notice: Undefined variable: soapClient in iATS_Service_Request->request() (line 202 of
    /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).</p>
    
    <p><strong>Type: php</strong> --  Warning: SoapClient::SoapClient(<a href="https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL" rel="nofollow">https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL</a>):
    failed to open stream: operation failed in
    iATS_Service_Request->request() (line 161 of
    /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).</p>
    
    <p><strong>Type: php</strong> -- Warning: SoapClient::SoapClient(): Failed to enable crypto in iATS_Service_Request->request() (line 161 of
    /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).</p>
    
    <p><strong>Type: php</strong> -- Warning: SoapClient::SoapClient(): SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL
    routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure in
    iATS_Service_Request->request() (line 161 of
    /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).</p>
  </blockquote>
  
  <p>Searching Google for "SOAP-ERROR: Parsing WSDL" related to iATS and CiviCRM, I found <a href="https://www.drupal.org/node/2660586#comment-10824592" rel="nofollow">this comment</a> and <a href="https://github.com/iATSPayments/com.iatspayments.civicrm/issues/125" rel="nofollow">this GitHub issue</a> by Joe Murray indicating that the issue could be related to inadequate SSL Protocols.  <a href="http://home.iatspayments.com/Relaunch-SHA256%20again" rel="nofollow">This announcement from iATS</a> also seemed to indicate that.</p>
  
  <p>I've taken the last two days to upgrade our OpenSSL to 1.0.2g and adjusted our SSL Protocols to only accept TLSv1.2.  The <a href="https://www.ssllabs.com/ssltest/" rel="nofollow">SSL Labs SSL Server Test</a> had initially rated us at a C, but after upgrading OpenSSL and the SSL Protocols, we now rate at an A-.</p>
  
  <p>Having updated our security settings, I cleared caches in both CiviCRM and Drupal and attempted our test contribution again, using the TEST88 information.  We still receive the same white screen error in the browser and the above error, notice and warnings in the Drupal logs.  I also tried using our actual account information with iATS.  Same result.</p>
  
  <p><strong>Any ideas on what to try next?</strong></p>
  
  <p>iATS extension 1.5, CiviCRM 4.6.14, Drupal 7, Apache 2.2.24, OpenSSL 1.0.2g</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-07T20:27:00.453Z
Comments.Text: Sigh... I neglected to compile PHP so, while my server sees the upgrade to OpenSSL, my site isn't recognizing the new version of OpenSSL. Will update once finished.
Comments.UserDisplayName: Allen Hutchison
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-08T17:04:41.417Z
Comments.Text: Hi Allen - it's the only explanation I can think off. Let us know if this solves it.
Comments.UserDisplayName: KarinG - Semper IT
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-13T00:07:24.027Z
Comments.Text: Haven't forgotten; just having a tough time upgrading/compiling PHP.  Finding dependency after dependency that each needed upgrading...
Comments.UserDisplayName: Allen Hutchison
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-13T02:19:37.007Z
Comments.Text: That sounds painful... this better work!
Comments.UserDisplayName: KarinG - Semper IT
Tags: <civicontribute><payment-processor><ssl><iats>
Title: What do these iATS - SOAP errors mean?
ThreadText: # What do these iATS - SOAP errors mean?
  
  (Asked by: username_0 on 2016-05-06)
  
  We are a new iATS client and have hit a bit of a roadblock.
  
  I followed the iATS extension [instructions here](https://github.com/iATSPayments/com.iatspayments.civicrm) for setting up the payment processor. On my local dev environment, things went great and I was able to process a contribution using the TEST88 information without a problem.
  
  When I tried to set up the iATS payment processor on our live production server and tried a contribution in the same manner, I received a white screen with the following error:
  
  > Fatal error: Call to a member function \_\_getLastResponseHeaders() on a
  > non-object in
  > /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php
  > on line 202
  
  Following the debug advice from the iATS instructions (I turned on Drupal/CiviCRM logging) and tried again. I received the same white screen and error. I checked the Drupal logs and received the following error, notice and warnings:
  
  > **Type: civicrm\_iatspayment\_com** SoapFault: SoapFault Object (
  > [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from '<https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL>' :
  > failed to load external entity
  > "<https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL>"
  > [the error in the logs is rather long and shows sensitive information, so I've truncated it]
  >
  > **Type: php** -- Notice: Undefined variable: soapClient in iATS\_Service\_Request->request() (line 202 of
  > /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).
  >
  > **Type: php** -- Warning: SoapClient::SoapClient(<https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL>):
  > failed to open stream: operation failed in
  > iATS\_Service\_Request->request() (line 161 of
  > /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).
  >
  > **Type: php** -- Warning: SoapClient::SoapClient(): Failed to enable crypto in iATS\_Service\_Request->request() (line 161 of
  > /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).
  >
  > **Type: php** -- Warning: SoapClient::SoapClient(): SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL
  > routines:SSL23\_GET\_SERVER\_HELLO:sslv3 alert handshake failure in
  > iATS\_Service\_Request->request() (line 161 of
  > /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).
  
  Searching Google for "SOAP-ERROR: Parsing WSDL" related to iATS and CiviCRM, I found [this comment](https://www.drupal.org/node/2660586#comment-10824592) and [this GitHub issue](https://github.com/iATSPayments/com.iatspayments.civicrm/issues/125) by Joe Murray indicating that the issue could be related to inadequate SSL Protocols. [This announcement from iATS](http://home.iatspayments.com/Relaunch-SHA256%20again) also seemed to indicate that.
  
  I've taken the last two days to upgrade our OpenSSL to 1.0.2g and adjusted our SSL Protocols to only accept TLSv1.2. The [SSL Labs SSL Server Test](https://www.ssllabs.com/ssltest/) had initially rated us at a C, but after upgrading OpenSSL and the SSL Protocols, we now rate at an A-.
  
  Having updated our security settings, I cleared caches in both CiviCRM and Drupal and attempted our test contribution again, using the TEST88 information. We still receive the same white screen error in the browser and the above error, notice and warnings in the Drupal logs. I also tried using our actual account information with iATS. Same result.
  
  **Any ideas on what to try next?**
  
  iATS extension 1.5, CiviCRM 4.6.14, Drupal 7, Apache 2.2.24, OpenSSL 1.0.2g
  
  **Tags:** civicontribute, payment-processor, ssl, iats
  
  > **Comments:**
  > **username_0**: Sigh... I neglected to compile PHP so, while my server sees the upgrade to OpenSSL, my site isn't recognizing the new version of OpenSSL. Will update once finished.  
  > **username_1**: Hi Allen - it's the only explanation I can think off. Let us know if this solves it.  
  > **username_0**: Haven't forgotten; just having a tough time upgrading/compiling PHP.  Finding dependency after dependency that each needed upgrading...  
  > **username_1**: That sounds painful... this better work!  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2016-06-17. Score: 1 | Accepted answer
  
  Turns out the issue was our server's operating system. **We were on CentOS 5.5, and it doesn't support OpenSSL higher than 0.9.8. We had to upgrade to a new server.** We decided on a CentOS 7 server and are in the process of migrating. The CentOS 7 server came with OpenSSL 1.0.2 installed. I setup and tested our connection with iATS today and had it working in no time at all. Hooray!
  
  While I had manually updated OpenSSL, I neglected to update it with our server's package manager (and our website would only recognize what the package manager was using). But it turns out with CentOS 5.5, the `yum` package manager only goes up to 0.9.8e. There was no way around it.
  
  There are so many benefits to CentOS 7 over 5.5, even with all the migration work, I'm glad we made the change.
  
  > **Comments:**
  > **username_2**: Had the exact same issue. Please report your findings if the extension is working for you. For me, on CV 4.7.11 on J!3.6.2, the webform is not advancing to the confirmation page once the transaction is successful.  
  > **username_0**: Extension is working great, now that we made the change to CentOS 7.  
  > **username_2**: Okay, then looks like its something in my codebase. Thanks for your experience.  
  
  ---
  
  