username = $username; $this->password = $password; $this->queue = array(); } public function execute(){ $method = ''; $requestIds = []; $parseResultFn = function ($method, $res) { if (isset($res->{$method . 'Result'})) { return $res->{$method . 'Result'}; } return $res; }; $options = [ 'connection_timeout' => 40, 'trace' => true, 'exceptions' => true, 'soap_version' => SOAP_1_1, 'cache_wsdl' => WSDL_CACHE_BOTH, 'encoding' => 'UTF-8', 'resFn' => $parseResultFn, ]; $client = new \Soap\ParallelSoapClient(self::PATH, $options); $client->setMulti(true); $responses = []; foreach ($this->queue as $key => $value) { # code... if(!is_array($value)) $method = $value; else $requestIds[] = $client->{$method}($value); } $responses = $client->run(); foreach ($responses as $id => $response) { if ($response instanceof SoapFault) { /** handle the exception here */ print 'SoapFault: ' . $response->faultcode . ' - ' . $response->getMessage() . "\n"; } else { if (!is_string($response)) { $response = json_encode($response, JSON_UNESCAPED_SLASHES); } print 'Response is : ' . $response . "\n"; } } //clean queue $this->queue = array(); } public function get($owner) { $data = [ 'username' => $this->username, 'password' => $this->password, 'owner'=>$owner ]; array_push($this->queue, 'GetBranchs'); array_push($this->queue, $data); } public function remove($branchId) { $data = [ 'username' => $this->username, 'password' => $this->password, 'branchId'=>$branchId ]; array_push($this->queue, 'RemoveBranch'); array_push($this->queue, $data); } public function add($branchName,$owner) { $data = [ 'username' => $this->username, 'password' => $this->password, 'branchName' => $branchName, 'owner'=>$owner ]; array_push($this->queue, 'AddBranch'); array_push($this->queue, $data); } public function addNumber($mobileNumbers,$branchId) { $data = [ 'username' => $this->username, 'password' => $this->password, 'branchId'=> $branchId, 'mobileNumbers'=>$mobileNumbers ]; array_push($this->queue, 'AddNumber'); array_push($this->queue, $data); } public function sendBulk($from,$title,$message,$branch,$DateToSend,$requestCount,$bulkType,$rowFrom,$rangeFrom,$rangeTo) { $data = [ 'username' => $this->username, 'password' => $this->password, 'from'=> $from, 'title' => $title, 'message' => $message, 'branch'=> $branch, 'DateToSend'=>$DateToSend, 'requestCount'=>$requestCount, 'bulkType'=> $bulkType, 'rowFrom'=> $rowFrom, 'rangeFrom'=>$rangeFrom, 'rangeTo'=>$rangeTo, ]; array_push($this->queue, 'AddBulk'); array_push($this->queue, $data); } public function sendBulk2($from,$title,$message,$branch,$DateToSend,$requestCount,$bulkType,$rowFrom,$rangeFrom,$rangeTo) { $data = [ 'username' => $this->username, 'password' => $this->password, 'from'=> $from, 'title' => $title, 'message' => $message, 'branch'=> $branch, 'DateToSend'=>$DateToSend, 'requestCount'=>$requestCount, 'bulkType'=> $bulkType, 'rowFrom'=> $rowFrom, 'rangeFrom'=>$rangeFrom, 'rangeTo'=>$rangeTo, ]; array_push($this->queue, 'AddBulk2'); array_push($this->queue, $data); } public function getBulkCount($branch,$rangeFrom,$rangeTo) { $data = [ 'username' => $this->username, 'password' => $this->password, 'branch'=> $branch, 'rangeFrom'=>$rangeFrom, 'rangeTo'=>$rangeTo, ]; array_push($this->queue, 'GetBulkCount'); array_push($this->queue, $data); } public function getBulkReceptions($bulkId,$fromRows) { $data = [ 'username' => $this->username, 'password' => $this->password, 'bulkId'=> $bulkId, 'fromRows'=>$fromRows, ]; array_push($this->queue, 'GetBulkReceptions'); array_push($this->queue, $data); } public function getBulkStatus($bulkId) { $data = [ 'username' => $this->username, 'password' => $this->password, 'bulkId'=> $bulkId, ]; array_push($this->queue, 'GetBulkStatus'); array_push($this->queue, $data); } public function getTodaySent() { $data = [ 'username' => $this->username, 'password' => $this->password, ]; array_push($this->queue, 'GetTodaySent'); array_push($this->queue, $data); } public function getTotalSent() { $data = [ 'username' => $this->username, 'password' => $this->password, ]; array_push($this->queue, 'GetTotalSent'); array_push($this->queue, $data); } public function removeBulk($id) { $data = [ 'username' => $this->username, 'password' => $this->password, 'bulkId'=> $id ]; array_push($this->queue, 'RemoveBulk'); array_push($this->queue, $data); } public function sendMultipleSms($to,$from,$text,$isflash,$udh) { $data = [ 'username' => $this->username, 'password' => $this->password, 'to'=> $to, 'from'=> $from, 'text' => $text, 'isflash' => $isflash, 'udh'=> $udh ]; if(is_array($from)) array_push($this->queue, 'SendMultipleSMS2'); else array_push($this->queue, 'SendMultipleSMS'); array_push($this->queue, $data); } public function updateBulkDelivery($bulkId) { $data=[ 'bulkId'=> $bulkId, 'username' => $this->username, 'password' => $this->password, ]; array_push($this->queue, 'UpdateBulkDelivery'); array_push($this->queue, $data); } }