public static function _doUrlRequest($httpVerb, $url, $requestBody = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $httpVerb); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/xml', 'Content-Type: application/xml', 'User-Agent: Braintree PHP Library ' . Braintree_Version::get(), 'X-ApiVersion: ' . Braintree_Configuration::API_VERSION)); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, Braintree_Configuration::publicKey() . ':' . Braintree_Configuration::privateKey()); // curl_setopt($curl, CURLOPT_VERBOSE, true); if (Braintree_Configuration::sslOn()) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($curl, CURLOPT_CAINFO, Braintree_Configuration::caFile()); } if (!empty($requestBody)) { curl_setopt($curl, CURLOPT_POSTFIELDS, $requestBody); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); $httpStatus = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if (Braintree_Configuration::sslOn()) { if ($httpStatus == 0) { throw new Braintree_Exception_SSLCertificate(); } } return array('status' => $httpStatus, 'body' => $response); }
function testCaFile() { Braintree_Configuration::environment('development'); $this->setExpectedException('Braintree_Exception_SSLCaFileNotFound'); Braintree_Configuration::caFile('/does/not/exist/'); }