@@ -26,6 +26,7 @@ class SoapRequest implements ProjectInterface, SoapRequestInterface
2626 private $ data ;
2727 private $ callFunction ;
2828 private $ fieldResult ;
29+ private $ responseIsJson ;
2930 private $ debug ;
3031 public $ debugStatus = FALSE ;
3132 public $ debugLoggerPath = NULL ;
@@ -107,6 +108,8 @@ public function setCallFunction($callFunction = '')
107108
108109 /**
109110 * Function setFieldResult
111+ * Nếu input giá trì vào đây, result sẽ map trực tiếp đến mã này
112+ * nếu không có sẽ trả error luôn
110113 *
111114 * @author: 713uk13m <[email protected] > 112115 * @time : 10/7/18 02:37
@@ -119,6 +122,23 @@ public function setFieldResult($fieldResult = '')
119122 $ this ->debug ->info (__FUNCTION__ , 'setFieldResult: ' , $ this ->fieldResult );
120123 }
121124
125+ /**
126+ * Function setResponseIsJson
127+ * Return Response is Json if value = true
128+ *
129+ * @author: 713uk13m <[email protected] > 130+ * @time : 10/8/18 19:00
131+ *
132+ * @param string $responseIsJson
133+ *
134+ * @return mixed|void
135+ */
136+ public function setResponseIsJson ($ responseIsJson = '' )
137+ {
138+ $ this ->responseIsJson = $ responseIsJson ;
139+ $ this ->debug ->info (__FUNCTION__ , 'setResponseIsJson: ' , $ this ->responseIsJson );
140+ }
141+
122142 /**
123143 * Function clientRequestWsdl
124144 *
@@ -135,33 +155,61 @@ public function clientRequestWsdl()
135155
136156 return NULL ;
137157 }
138- $ client = new nusoap_client ($ this ->endpoint , TRUE );
139- $ client ->soap_defencoding = self ::SOAP_ENCODING ;
140- $ client ->xml_encoding = self ::XML_ENCODING ;
141- $ client ->decode_utf8 = self ::DECODE_UTF8 ;
142- $ error = $ client ->getError ();
143- if ($ error ) {
144- $ message = "Request SOAP Charge Error: " . json_encode ($ error );
145- $ this ->debug ->error (__FUNCTION__ , $ message );
146- } else {
147- $ result = $ client ->call ($ this ->callFunction , $ this ->data );
148- $ this ->debug ->info (__FUNCTION__ , 'Result from Endpoint: ' , $ result );
149- if (isset ($ result [$ this ->fieldResult ])) {
150- $ this ->debug ->info (__FUNCTION__ , 'Output Result: ' , $ result [$ this ->fieldResult ]);
151- $ message = [
152- 'status ' => 0 ,
153- 'code ' => $ result [$ this ->fieldResult ],
154- 'data ' => $ result
155- ];
158+ try {
159+ $ client = new nusoap_client ($ this ->endpoint , TRUE );
160+ $ client ->soap_defencoding = self ::SOAP_ENCODING ;
161+ $ client ->xml_encoding = self ::XML_ENCODING ;
162+ $ client ->decode_utf8 = self ::DECODE_UTF8 ;
163+ $ error = $ client ->getError ();
164+ if ($ error ) {
165+ $ message = "Request SOAP Charge Error: " . json_encode ($ error );
166+ $ this ->debug ->error (__FUNCTION__ , $ message );
156167 } else {
157- $ this ->debug ->info (__FUNCTION__ , 'Missing Result from ' . $ this ->fieldResult );
158- $ message = [
159- 'status ' => 1 ,
160- 'code ' => 'Missing Result from ' . $ this ->fieldResult ,
161- 'data ' => $ result
162- ];
168+ $ result = $ client ->call ($ this ->callFunction , $ this ->data );
169+ $ this ->debug ->info (__FUNCTION__ , 'Result from Endpoint: ' , $ result );
170+ if ($ this ->fieldResult ) {
171+ if (isset ($ result [$ this ->fieldResult ])) {
172+ $ this ->debug ->info (__FUNCTION__ , 'Output Result: ' , $ result [$ this ->fieldResult ]);
173+ $ message = [
174+ 'status ' => 0 ,
175+ 'code ' => $ result [$ this ->fieldResult ],
176+ 'data ' => $ result
177+ ];
178+ } else {
179+ $ this ->debug ->info (__FUNCTION__ , 'Missing Result from ' . $ this ->fieldResult );
180+ $ message = [
181+ 'status ' => 1 ,
182+ 'code ' => 'Missing Result from ' . $ this ->fieldResult ,
183+ 'data ' => $ result
184+ ];
185+ }
186+ } else {
187+ $ message = [
188+ 'status ' => 0 ,
189+ 'code ' => 'Return full Response ' ,
190+ 'data ' => $ result
191+ ];
192+ }
163193 }
164194 }
195+ catch (\Exception $ e ) {
196+ $ message = [
197+ 'status ' => 2 ,
198+ 'code ' => 'Exception Error ' ,
199+ 'data ' => [
200+ 'File ' => $ e ->getFile (),
201+ 'Line ' => $ e ->getLine (),
202+ 'Code ' => $ e ->getCode (),
203+ 'Message ' => $ e ->getMessage (),
204+ ]
205+ ];
206+ $ error_message = 'Error File: ' . $ e ->getFile () . ' - Line: ' . $ e ->getLine () . ' - Code: ' . $ e ->getCode () . ' - Message: ' . $ e ->getMessage ();
207+ $ this ->debug ->error (__FUNCTION__ , $ error_message );
208+ }
209+ if ($ this ->responseIsJson ) {
210+ $ this ->debug ->debug (__FUNCTION__ , 'Response is Json ' );
211+ $ message = json_encode ($ message );
212+ }
165213 $ this ->debug ->info (__FUNCTION__ , 'Final Result: ' , $ message );
166214
167215 return $ message ;
0 commit comments