_server = new SoapServer ( NULL, array ( 'soap_version' => SOAP_1_2, 'encoding' => 'UTF-8', 'uri' => 'http://tempuri.org/' ) ); } function __destruct() { ini_set ( "soap.wsdl_cache_enabled", "0" ); } public function index() { if ($this->uri->segment ( 4 ) == "wsdl") { header ( 'Content-Type: text/xml; charset: utf-8' ); $this->load->view ( 'mowsdl' ); } else { header ( 'Content-Type: text/html; charset: utf-8' ); echo 'See service WSDL page'; } } public function mo() { function messageReceiver() { $aryArgs = func_get_args (); $aryExport = array ( 'Username' => $aryArgs [0], 'Password' => $aryArgs [1], 'RequestID' => $aryArgs [2], 'UserID' => $aryArgs [3], 'ReceiverID' => $aryArgs [4], 'ServiceID' => $aryArgs [5], 'CommandCode' => $aryArgs [6], 'Info' => $aryArgs [7], 'ReceiveTime' => $aryArgs [8] ); error_log ( date ( 'Y-m-d H:i:s' ) . ' -- VARIABLES: ' . var_export ( $aryExport, TRUE ) . "\n", 3, '/srv/www/sbg/log/sms.log' ); list ( $username, $password, $requestID, $userID, $receiverID, $serviceID, $commandCode, $info, $receiveTime ) = $aryArgs; $msgType = '0'; // text message $errCode = '1'; // #1:error; 1:Success; $CI = & get_instance (); $mo_username = $CI->config->item ( 'mo_username' ); $mo_password = $CI->config->item ( 'mo_password' ); if (! $username) return '0|0|Username is required!'; if (! $password) return '0|0|Password is required!'; if ($username != $mo_username) return '0|0|Username is not corrected!'; if ($password != $mo_password) return '0|0|Password is not corrected!'; if (! $requestID) return '0|0|requestID is required!'; if (! $userID) return '0|0|UserID is required!'; if (! $serviceID) return '0|0|serviceID is required!'; if ($serviceID != '8062') return '0|0|serviceID is not corrected!'; $CI->load->model ( 'Services_model' ); $CI->load->model ( 'frontend/User_model', 'objUserModel' ); $result = $CI->Services_model->processMORequest ( $userID, $info ); error_log ( date ( 'Y-m-d H:i:s' ) . ' -- INFO VAR: ' . var_export ( $info, TRUE ) . "\n\n", 3, '/srv/www/sbg/log/sms.log' ); $CI->objUserModel->insertSmslog ( $receiverID, $serviceID, $commandCode, $info, $receiveTime ); $aryResult = explode ( '|', $result ); return $aryResult [0] . '|' . $msgType . '|' . $aryResult [1]; } $this->_server->addFunction ( 'messageReceiver' ); try { ob_start (); $soapOutput = ''; $this->_server->handle (); if (ob_get_length () > 0) { $soapOutput = ob_get_clean (); } if ($soapOutput != '') { $pattern = '/<[^>]*[^\/]>/i'; $aryOutput = preg_split ( $pattern, $soapOutput, - 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); $aryData = array (); $aryData ['message'] = $aryOutput [1]; $xml = $this->load->view ( 'mo', $aryData, TRUE ); header ( 'Content-Type: text/xml; charset: utf-8' ); echo $xml; } else { header ( 'Content-Type: text/html; charset: utf-8' ); echo 'See service WSDL page'; } } catch ( Exception $e ) { $this->_server->fault ( 'Sender', $e->getMessage () ); } } } /* End of file viettel.php */ /* Location: ./application/modules/service/controllers/viettel.php */