@@ -19,6 +19,7 @@ class ApiRequest implements ApiRequestInterface
19
19
const PAYOUT_CREATE_API = '/api/v4/payout ' ;
20
20
const HOST = 'https://secure.ypmn.ru ' ;
21
21
const SANDBOX_HOST = 'https://sandbox.ypmn.ru ' ;
22
+ const LOCAL_HOST = 'http://localhost ' ;
22
23
23
24
24
25
/** @var MerchantInterface Мерчант, от имени которого отправляется запрос */
@@ -27,6 +28,9 @@ class ApiRequest implements ApiRequestInterface
27
28
/** @var bool Режим Песочницы (тестовая панель Ypmn) */
28
29
private bool $ sandboxModeIsOn = false ;
29
30
31
+ /** @var bool Режим отправки запросов на локальный хост */
32
+ private bool $ localModeIsOn = false ;
33
+
30
34
/** @var bool Режим Отладки (вывод системных сообщений) */
31
35
private bool $ debugModeIsOn = false ;
32
36
@@ -45,9 +49,14 @@ private function sendGetRequest(string $api): array
45
49
{
46
50
$ curl = curl_init ();
47
51
$ date = (new DateTime ())->format (DateTimeInterface::ATOM );
48
- $ urlToPostTo = ($ this ->getSandboxMode () ? self ::SANDBOX_HOST : self ::HOST ) . $ api ;
49
52
$ requestHttpVerb = 'GET ' ;
50
53
54
+ if ($ this ->localModeIsOn ) {
55
+ $ urlToPostTo = self ::LOCAL_HOST ;
56
+ } else {
57
+ $ urlToPostTo = ($ this ->getSandboxMode () ? self ::SANDBOX_HOST : self ::HOST ) . $ api ;
58
+ }
59
+
51
60
$ setopt_array = [
52
61
CURLOPT_URL => $ urlToPostTo ,
53
62
CURLOPT_RETURNTRANSFER => true ,
@@ -138,9 +147,14 @@ private function sendPostRequest(JsonSerializable $data, string $api): array
138
147
139
148
$ curl = curl_init ();
140
149
$ date = (new DateTime ())->format (DateTimeInterface::ATOM );
141
- $ urlToPostTo = ($ this ->getSandboxMode () ? self ::SANDBOX_HOST : self ::HOST ) . $ api ;
142
150
$ requestHttpVerb = 'POST ' ;
143
151
152
+ if ($ this ->localModeIsOn ) {
153
+ $ urlToPostTo = self ::LOCAL_HOST ;
154
+ } else {
155
+ $ urlToPostTo = ($ this ->getSandboxMode () ? self ::SANDBOX_HOST : self ::HOST ) . $ api ;
156
+ }
157
+
144
158
curl_setopt_array ($ curl , [
145
159
CURLOPT_URL => $ urlToPostTo ,
146
160
CURLOPT_RETURNTRANSFER => true ,
@@ -184,8 +198,10 @@ private function sendPostRequest(JsonSerializable $data, string $api): array
184
198
echo '<br><a href="https://github.com/yourpayments/php-api-client/issues">Оставить заявку на улучшение</a> ' ;
185
199
echo '<br><a href="https://ypmn.ru/ru/contacts/">Контакты</a> ' ;
186
200
} else {
201
+
187
202
$ cpanel_url = 'https:// ' . ($ this ->getSandboxMode () ? 'sandbox ' : 'secure ' ). '.ypmn.ru/cpanel/ ' ;
188
203
204
+
189
205
if ($ this ->getSandboxMode ()) {
190
206
echo Std::alert ([
191
207
'type ' => 'warning ' ,
@@ -290,7 +306,28 @@ public function getSandboxMode(): bool
290
306
/** @inheritdoc */
291
307
public function setSandboxMode (bool $ sandboxModeIsOn = true ): self
292
308
{
309
+ if ($ sandboxModeIsOn ) {
310
+ $ this ->setLocalMode (false );
311
+ }
293
312
$ this ->sandboxModeIsOn = $ sandboxModeIsOn ;
313
+
314
+ return $ this ;
315
+ }
316
+
317
+ /** @inheritdoc */
318
+ public function getLocalMode (): bool
319
+ {
320
+ return $ this ->localModeIsOn ;
321
+ }
322
+
323
+ /** @inheritdoc */
324
+ public function setLocalMode (bool $ localModeIsOn = true ): self
325
+ {
326
+ if ($ localModeIsOn ) {
327
+ $ this ->setSandboxMode (false );
328
+ }
329
+ $ this ->localModeIsOn = $ localModeIsOn ;
330
+
294
331
return $ this ;
295
332
}
296
333
0 commit comments