Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
29 / 29 |
| Client | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
3 | |
100.00% |
29 / 29 |
| __doRequest | |
100.00% |
1 / 1 |
2 | |
100.00% |
27 / 27 |
|||
| setCustomHeaders | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| <?php | |
| // Fix bug #49853 - https://bugs.php.net/bug.php?id=49853 | |
| namespace TodoPago; | |
| class Client extends \SoapClient | |
| { | |
| protected $custom_headers; | |
| public function __doRequest($request, $location, $action, $version, $one_way = NULL) | |
| { | |
| $soap_request = $request; | |
| $context = $this->custom_headers; | |
| $custom_headers = array_filter(explode("\r\n",$context['http']['header'])); | |
| $headers = array( | |
| "Content-type: text/xml;charset=\"utf-8\"", | |
| "Cache-Control: no-cache", | |
| "Pragma: no-cache", | |
| "SOAPAction: \"$action\"", | |
| "Content-length: ".strlen($soap_request), | |
| ); | |
| $soap_do = curl_init(); | |
| $url = $location; | |
| $options = array( | |
| CURLOPT_RETURNTRANSFER => true, | |
| CURLOPT_SSL_VERIFYHOST => false, | |
| CURLOPT_SSL_VERIFYPEER => false, | |
| CURLOPT_USERAGENT => 'PHPSOAP/'.PHP_VERSION, | |
| CURLOPT_URL => $url , | |
| CURLOPT_POSTFIELDS => $soap_request , | |
| CURLOPT_HTTPHEADER => array_merge($headers,$custom_headers) , | |
| ); | |
| curl_setopt_array($soap_do , $options); | |
| $output = curl_exec($soap_do); | |
| if( $output === false) | |
| { | |
| $err = 'Curl error: ' . curl_error($soap_do); | |
| throw new \Exception($err); | |
| } | |
| curl_close($soap_do); | |
| return $output; | |
| } | |
| public function setCustomHeaders($context) | |
| { | |
| $this->custom_headers = $context; | |
| } | |
| } |