Запрос SOAP с использованием CURL на Codieigniter 4 - PullRequest
1 голос
/ 27 мая 2020

Я использую службу, использующую CURL. Я могу подключить все функции служб в виде CXF Service List , используя следующий код.

$client = \Config\Services::curlrequest();

$response = $client->request('GET', 'www.soapservice.co.za/service');

var_dump($response->getBody());

Var Dump Возвращает строку с Доступными службами.

Служба имеет 10 функций, перечисленных таким образом getDataFunction.

Как вызвать функцию? Или как получить содержимое тела и начать пользоваться служебными функциями?

Любая помощь приветствуется

1 Ответ

0 голосов
/ 20 августа 2020

Вот как я решил свою проблему, используя Codeignter 4 и Soap Client .

public function ownersearch()
{
helper(['form']);
    $username = "";
    $password = "";
    $url = 'getProperty?wsdl'; 

            $first_name = $this->request->getVar('first_name');
            $second_name = $this->request->getVar('second_name');
            $last_name = $this->request->getVar('last_name');
            $user_id = $this->request->getVar('user_id');

            $session_id = session()->get('user_id');

            
    
            $client = new \SoapClient($url);
            $deedsusagemodel = new UsageLogModel();
            $args = [
                'idNumber'=> $user_id,
                'username'=> $username,
                'password' => $password,
                'officeCode' => 1
            ];
            
            $usageData = [
                'user_id' => $session_id
            ];


    
    
    if($user_id != Null){
        $response = $client->getFunctionByIDNumber($args);

        $ndata = $response->return;

        
            if($ndata->errorResponse->errorCode == 64)
            {
                $error = $ndata->errorResponse->errorDescription;
                return $this->fail($error);
            }
            if($ndata->errorResponse->errorCode == 550)
            {
                $error = $ndata->errorResponse->errorDescription;
                return $this->fail($error);
            }
            else{
                $usagemodel->insert($usageData);
                
                return $this->respond($ndata, 200);

            }
                
            
    }
}
...