Skip to content

Commit fe78722

Browse files
authored
Merge pull request #9 from nguyenanhung/develop
Fix SoapRequest
2 parents 6fac06a + 5834ebd commit fe78722

File tree

3 files changed

+85
-25
lines changed

3 files changed

+85
-25
lines changed

src/Interfaces/ProjectInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
interface ProjectInterface
1414
{
15-
const VERSION = '0.1.3.2';
15+
const VERSION = '0.1.3.3';
1616
const MIN_PHP_VERSION = '5.3';
1717
const GET = 'GET';
1818
const HEAD = 'HEAD';

src/Interfaces/SoapRequestInterface.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ public function setCallFunction($callFunction = '');
6464
*/
6565
public function setFieldResult($fieldResult = '');
6666

67+
/**
68+
* Function setResponseIsJson
69+
*
70+
* @author: 713uk13m <[email protected]>
71+
* @time : 10/8/18 19:00
72+
*
73+
* @param string $responseIsJson
74+
*
75+
* @return mixed
76+
*/
77+
public function setResponseIsJson($responseIsJson = '');
78+
6779
/**
6880
* Function clientRequestWsdl
6981
*

src/SoapRequest.php

Lines changed: 72 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)