1 | <?php
|
---|
2 |
|
---|
3 | if (! defined ( 'BASEPATH' ))
|
---|
4 | exit ( 'No direct script access allowed' );
|
---|
5 | /**
|
---|
6 | * Viettel Class
|
---|
7 | *
|
---|
8 | * @author dzungnv02
|
---|
9 | *
|
---|
10 | */
|
---|
11 | class 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 */ |
---|