function _postData($url, $postData)
    {
        if ($this->mockResponse !== null) {
            return $this->mockResponse;
        }

        // Put the postData into a string
        $postString = '';
        foreach ($postData as $field => $value) {
            $postString .= $field . '=' . urlencode(stripslashes($value)) . '&'; // Trailing & at end of post string is forgivable
        }

        $curl = \curl_init();
        \curl_setopt($curl, CURLOPT_URL, $url);
        \curl_setopt($curl, CURLOPT_POST, 1);
        \curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        \curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
        \curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

        if (!empty($this->proxyUrl)) {
            \curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
            \curl_setopt($curl, CURLOPT_PROXY, $this->proxyUrl);
        }

        \curl_setopt($curl, CURLOPT_POSTFIELDS, $postString);

        $response = \curl_exec($curl);

        // Log and return if we have an error
        if (\curl_error($curl)) {
            $this->_logTransaction("PDT", "ERROR", "curl error number " . \curl_errno($curl) . ": " . \curl_error($curl) . " connecting to " . $url);

            return FALSE;
        }

        \curl_close($curl);

        if (preg_match("/(SUCCESS|FAIL)/", $response, $matches)) {
            $response_array = explode("\n", $response);
            if ($response_array[0] === "SUCCESS") {
                // Get rid of SUCCESS
                array_shift($response_array);

                // Get rid of null line
                array_pop($response_array);

                $final_response = array();
                foreach ($response_array as $value) {
                    $temp = explode("=", $value);
                    $final_response[urldecode($temp[0])] = urldecode($temp[1]);
                }

                return $final_response;
            } else {
                $this->_logTransaction('PDT', 'ERROR', 'PayPal rejected the PDT call as invalid - potentially call was spoofed or was not checked within 30s', $response);
            }
        } else {
            $this->_logTransaction('PDT', 'ERROR', 'PayPal did not respond properly to the PDT call', $response);
        }

        return FALSE;
    }