source: pro-violet-viettel/sourcecode/application/modules/services/controllers/viettel.php @ 758

Last change on this file since 758 was 758, checked in by dungnv, 10 years ago
File size: 3.8 KB
Line 
1<?php
2
3if (! defined ( 'BASEPATH' ))
4        exit ( 'No direct script access allowed' );
5/**
6 * Viettel Class
7 *
8 * @author dzungnv02
9 *       
10 */
11class Viettel extends MX_Controller {
12        private $_server = null;
13       
14        function __construct() {
15                parent::__construct ();
16                ini_set ( "soap.wsdl_cache_enabled", "1" );
17                $this->_server = new SoapServer ( NULL, array (
18                                'soap_version' => SOAP_1_2,
19                                'encoding' => 'UTF-8',
20                                'uri' => 'http://tempuri.org/'
21                ) );
22        }
23       
24        function __destruct() {
25                ini_set ( "soap.wsdl_cache_enabled", "0" );
26        }
27       
28        public function index() {
29                if ($this->uri->segment ( 4 ) == "wsdl") {
30                        header ( 'Content-Type: text/xml; charset: utf-8' );
31                        $this->load->view ( 'mowsdl' );
32                } else {
33                        header ( 'Content-Type: text/html; charset: utf-8' );
34                        echo 'See service <a href="' . base_url () . 'violetservice/soanbai/mo/wsdl">WSDL page</a>';
35                }
36        }
37       
38        public function mo() {
39                function messageReceiver() {
40                        $aryArgs = func_get_args ();
41                        $aryExport = array (
42                                        'Username' => $aryArgs [0],
43                                        'Password' => $aryArgs [1],
44                                        'RequestID' => $aryArgs [2],
45                                        'UserID' => $aryArgs [3],
46                                        'ReceiverID' => $aryArgs [4],
47                                        'ServiceID' => $aryArgs [5],
48                                        'CommandCode' => $aryArgs [6],
49                                        'Info' => $aryArgs [7],
50                                        'ReceiveTime' => $aryArgs [8]
51                        );
52                       
53                        error_log ( date ( 'Y-m-d H:i:s' ) . ' -- VARIABLES: ' . var_export ( $aryExport, TRUE ) . "\n", 3, '/srv/www/sbg/log/sms.log' );
54                        list ( $username, $password, $requestID, $userID, $receiverID, $serviceID, $commandCode, $info, $receiveTime ) = $aryArgs;
55                       
56                        $msgType = '0'; // text message
57                        $errCode = '1'; // #1:error; 1:Success;
58                       
59                        $CI = & get_instance ();
60                        $mo_username = $CI->config->item ( 'mo_username' );
61                        $mo_password = $CI->config->item ( 'mo_password' );
62                       
63                        if (! $username)
64                                return '0|0|Username is required!';
65                        if (! $password)
66                                return '0|0|Password is required!';
67                        if ($username != $mo_username)
68                                return '0|0|Username is not corrected!';
69                        if ($password != $mo_password)
70                                return '0|0|Password is not corrected!';
71                        if (! $requestID)
72                                return '0|0|requestID is required!';
73                        if (! $userID)
74                                return '0|0|UserID is required!';
75                        if (! $serviceID)
76                                return '0|0|serviceID is required!';
77                        if ($serviceID != '8062')
78                                return '0|0|serviceID is not corrected!';
79                       
80                        $CI->load->model ( 'Services_model' );
81                        $CI->load->model ( 'frontend/User_model', 'objUserModel' );
82                        $result = $CI->Services_model->processMORequest ( $userID, $info );
83                        error_log ( date ( 'Y-m-d H:i:s' ) . ' -- INFO VAR: ' . var_export ( $info, TRUE ) . "\n\n", 3, '/srv/www/sbg/log/sms.log' );
84                        $CI->objUserModel->insertSmslog ( $receiverID, $serviceID, $commandCode, $info, $receiveTime );
85                       
86                        $aryResult = explode ( '|', $result );
87                        return $aryResult [0] . '|' . $msgType . '|' . $aryResult [1];
88                }
89               
90                $this->_server->addFunction ( 'messageReceiver' );
91               
92                try {
93                        ob_start ();
94                        $soapOutput = '';
95                        $this->_server->handle ();
96                       
97                        if (ob_get_length () > 0) {
98                                $soapOutput = ob_get_clean ();
99                        }
100                       
101                        if ($soapOutput != '') {
102                                $pattern = '/<[^>]*[^\/]>/i';
103                                $aryOutput = preg_split ( $pattern, $soapOutput, - 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
104                                $aryData = array ();
105                                $aryData ['message'] = $aryOutput [1];
106                                $xml = $this->load->view ( 'mo', $aryData, TRUE );
107                                header ( 'Content-Type: text/xml; charset: utf-8' );
108                                echo $xml;
109                        } else {
110                                header ( 'Content-Type: text/html; charset: utf-8' );
111                                echo 'See service <a href="' . base_url () . 'violetservice/soanbai/mo/wsdl">WSDL page</a>';
112                        }
113                } catch ( Exception $e ) {
114                        $this->_server->fault ( 'Sender', $e->getMessage () );
115                }
116        }
117}
118
119/* End of file viettel.php */
120/* Location: ./application/modules/service/controllers/viettel.php */
Note: See TracBrowser for help on using the repository browser.