$value) { $params .= "<".$key.">".$value." \n"; } $xml = ' <'.$action.' xmlns="http://www.pixiboxwserv.fr/"> '.$params.' '; return $xml; } public function request($action, array $params) { $body = $this->generateXml($action, $params); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => self::REQUEST_URL, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $body, CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: text/xml" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); $xs = new SimpleXMLIterator($response); $body = @$xs->xpath("//soap:Body"); $body = object_to_array($body); switch ($action) { case 'CreateUpdateUser': $value = @$body[0]['CreateUpdateUserResponse']['CreateUpdateUserResult']; _log($value); return in_array($value, self::SUCCESS_RESPONSE_VALUES); break; default: return false; break; } } public function getLink($email) { $queryStrings = http_build_query([ 'Email' => $email, 'Partnerkey' => '123123' ]); return self::COUPON_LINK .'?' . $queryStrings; } }