diff --git a/payment/uc_paypal/src/Controller/PayPalController.php b/payment/uc_paypal/src/Controller/PayPalController.php
index 6a33780..9034fd4 100644
--- a/payment/uc_paypal/src/Controller/PayPalController.php
+++ b/payment/uc_paypal/src/Controller/PayPalController.php
@@ -87,18 +87,26 @@ class PayPalController extends ControllerBase {
     }
 
     // POST IPN data back to PayPal to validate.
-    try {
-      $response = \Drupal::httpClient()->request('POST', $host, [
-        'form_params' => ['cmd' => '_notify-validate'] + $ipn,
-      ]);
-    }
-    catch (TransferException $e) {
-      \Drupal::logger('uc_paypal')->error('IPN validation failed with HTTP error %error.', ['%error' => $e->getMessage()]);
-      return;
-    }
+    $request = curl_init();
+    curl_setopt_array($request, array
+    (
+        CURLOPT_URL => $host,
+        CURLOPT_POST => TRUE,
+        CURLOPT_POSTFIELDS => http_build_query(array('cmd' => '_notify-validate') + $ipn),
+        CURLOPT_RETURNTRANSFER => TRUE,
+        CURLOPT_HEADER => FALSE,
+    ));
+
+    // Execute request and get response and status code
+    $response = curl_exec($request);
+    $status   = curl_getinfo($request, CURLINFO_HTTP_CODE);
+
+    // Close connection
+    curl_close($request);
+
 
     // Check IPN validation response to determine if the IPN was valid..
-    if ($response->getBody() != 'VERIFIED') {
+    if($status == 200 && $response == 'VERIFIED') {
       \Drupal::logger('uc_paypal')->error('IPN transaction failed verification.');
       uc_order_comment_save($order_id, 0, $this->t('An IPN transaction failed verification for this order.'), 'admin');
       return;
