/** * Requests a PDF document from the given URI * * @param string $uri Target URI for this request (relative to the API root) * @param string $locale Locale for the PDF invoice (e.g. "en-GB", "en-US", "fr") * @return string $response PDF document */ public function getPdf($uri, $locale = null) { if (substr($uri, 0, 4) != 'http') { $uri = $this->baseUri() . $uri; } if (is_null($locale)) { $locale = $this->_acceptLanguage; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $uri); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); curl_setopt($ch, CURLOPT_MAXREDIRS, 1); curl_setopt($ch, CURLOPT_HEADER, FALSE); // do not return headers curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/pdf', Recurly_Client::__userAgent(), 'Accept-Language: ' . $locale)); curl_setopt($ch, CURLOPT_USERPWD, $this->apiKey()); $response = curl_exec($ch); if ($response === false) { $errorNumber = curl_errno($ch); $message = curl_error($ch); curl_close($ch); $this->_raiseCurlError($errorNumber, $message); } curl_close($ch); return $response; }