Viewing file: HttpAction.php (3.39 KB) -rw-rw-r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class Paymentwall_HttpAction extends Paymentwall_Instance
{
protected $apiObject;
protected $apiParams = array();
protected $apiHeaders = array();
protected $responseLogInformation = array();
public function __construct($object, $params = array(), $headers = array())
{
$this->setApiObject($object);
$this->setApiParams($params);
$this->setApiHeaders($headers);
}
public function getApiObject()
{
return $this->apiObject;
}
public function setApiObject(Paymentwall_ApiObject $apiObject)
{
$this->apiObject = $apiObject;
}
public function getApiParams()
{
return $this->apiParams;
}
public function setApiParams($params = array())
{
$this->apiParams = $params;
}
public function getApiHeaders()
{
return $this->apiHeaders;
}
public function setApiHeaders($headers = array())
{
$this->apiHeaders = $headers;
}
public function run()
{
$result = null;
if ($this->getApiObject() instanceof Paymentwall_ApiObject) {
$result = $this->apiObjectPostRequest($this->getApiObject());
}
return $result;
}
public function apiObjectPostRequest(Paymentwall_ApiObject $object)
{
return $this->request('POST', $object->getApiUrl(), $this->getApiParams(), $this->getApiHeaders());
}
public function post($url = '')
{
return $this->request('POST', $url, $this->getApiParams(), $this->getApiHeaders());
}
public function get($url = '')
{
return $this->request('GET', $url, $this->getApiParams(), $this->getApiHeaders());
}
protected function request($httpVerb = '', $url = '', $params = array(), $customHeaders = array())
{
$curl = curl_init();
$headers = array(
$this->getLibraryDefaultRequestHeader()
);
if (!empty($customHeaders)) {
$headers = array_merge($headers, $customHeaders);
}
if (!empty($params)) {
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
}
// CURL_SSLVERSION_TLSv1_2 is defined in libcurl version 7.34 or later
// but unless PHP has been compiled with the correct libcurl headers it
// won't be defined in your PHP instance. PHP > 5.5.19 or > 5.6.3
if (! defined('CURL_SSLVERSION_TLSv1_2')) {
define('CURL_SSLVERSION_TLSv1_2', 6);
}
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $httpVerb);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_HEADER, true);
$response = curl_exec($curl);
$headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $headerSize);
$body = substr($response, $headerSize);
$this->responseLogInformation = array(
'header' => $header,
'body' => $body,
'status' => curl_getinfo($curl, CURLINFO_HTTP_CODE)
);
curl_close($curl);
return $this->prepareResponse($body);
}
protected function getLibraryDefaultRequestHeader()
{
return 'User-Agent: Paymentwall PHP Library v. ' . $this->getConfig()->getVersion();
}
protected function prepareResponse($string = '')
{
return preg_replace('/\x{FEFF}/u', '', $string);
}
public function getResponseLogInformation() {
return $this->responseLogInformation;
}
}
|