Skip to content

Commit 3545b1a

Browse files
authored
Merge pull request #67 from mindbox-cloud/MBM-788
MBM-788 обновление документации для запросов v3
2 parents 5b0b65c + 4e88355 commit 3545b1a

File tree

4 files changed

+130
-4
lines changed

4 files changed

+130
-4
lines changed

docs/examples/send_request_to_v3.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* method - HTTP метод запроса: 'POST', 'GET';
66
* operationName - название операции в Mindbox;
77
* body - тело запроса в виде DTO, необязательный параметр;
8-
* additionalUrl - дополнительный URL, конкатенируется с базовым URL: https://api.mindbox.ru/v3/operations/{additionalUrl}, необязательный параметр;
8+
* additionalUrl - дополнительный URL, конкатенируется с базовым URL: https://{domain}.{domainZone}/v3/operations/{additionalUrl}, необязательный параметр;
99
* queryParams - массив дополнительных GET параметров, необязательный параметр;
1010
* isSync - флаг, синхронный или асинхронный запрос, по умолчанию true (синхронный), необязательный параметр;
1111
* addDeviceUUID - флаг, добавлять ли DeviceUUID в запрос, по умолчанию true (добавляет DeviceUUID из куки mindboxDeviceUUID в query-параметры запроса и IP-адрес потребителя в заголовок X-Customer-IP), необязательный параметр.
@@ -46,4 +46,41 @@ try {
4646
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
4747
echo $e->getMessage();
4848
}
49+
```
50+
Для указания запроса на произвольный url mindbox следует следует использовать \Mindbox\Clients\MindboxClientV3 вместо фабрики
51+
52+
## Пример отправки запроса на произвольны URL к API v3
53+
``` php
54+
$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');
55+
$httpClient = (new \Mindbox\HttpClients\HttpClientFactory())->createHttpClient('{timeout}', '{handlerName}');
56+
57+
$client = new \Mindbox\Clients\MindboxClientV3(
58+
'{endpointId}',
59+
'{secretKey}',
60+
$httpClient,
61+
$logger,
62+
'{domainZone}'
63+
'{domain}'
64+
);
65+
66+
$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
67+
$customer->setEmail('test@test.ru');
68+
$customer->setMobilePhone('79374134389');
69+
$customer->setId('bitrixId', '123456');
70+
$customer->setId('mindboxId', '1028');
71+
72+
$operation = new \Mindbox\DTO\V3\OperationDTO();
73+
$operation->setCustomer($customer);
74+
75+
/* Формирование состава операции */
76+
try {
77+
$response = $client
78+
->prepareRequest('POST', 'Website.AuthorizeCustomer', $operation, '', [], false, false)
79+
->sendRequest();
80+
81+
$requestBody = $response->getRequest()->getBody();
82+
$responseBody = $response->getBody();
83+
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
84+
echo $e->getMessage();
85+
}
4986
```

docs/getting_started.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ require_once __DIR__ . '/path/to/mindboxSDK/vendor/autoload.php';
5656
* endpointId - уникальный идентификатор сайта/мобильного приложения/и т.п. Значение нужно уточнить у менеджера Mindbox.
5757
* secretKey - секретный ключ, соответствующий endpointId. Значение нужно уточнить у менеджера Mindbox.
5858
* domain - домен, на который будут отправляться запросы к v2.1 API Mindbox: https://{domain}/v2.1/orders/.
59+
* domainZone - доменная зона, на которую будут отправляться запросы к v3 API Mindbox: https://api.mindbox.{{domainZone}}/v3/operations/.
5960

6061
Опциональные параметры:
6162
* timeout - таймаут соединения при выполнении HTTP запроса (в секундах). По умолчанию равен 5 секундам.
@@ -71,6 +72,7 @@ $logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');
7172
$mindbox = new \Mindbox\Mindbox([
7273
'endpointId' => '{endpointId}',
7374
'secretKey' => '{secretKey}',
75+
'domain' => '{domain}',
7476
'domainZone' => '{domainZone}',
7577
//'timeout' => '{timeout}',
7678
//'httpClient' => '{httpClient}',
@@ -158,4 +160,57 @@ try {
158160
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
159161
echo $e->getMessage();
160162
}
163+
```
164+
165+
## Пример отправки запроса на произвольны URL к API v3
166+
Обязательные параметры конфигурации SDK:
167+
* endpointId - уникальный идентификатор сайта/мобильного приложения/и т.п. Значение нужно уточнить у менеджера Mindbox.
168+
* secretKey - секретный ключ, соответствующий endpointId. Значение нужно уточнить у менеджера Mindbox.
169+
* timeout - таймаут соединения при выполнении HTTP запроса (в секундах). По умолчанию равен 5 секундам.
170+
* httpClient - назвавние клиента для отправки запроса ("curl", "stream"). По умолчанию curl, если установлено расширение ext-curl, иначе stream.
171+
* logger - объект логгера, реализующий интерфейс \Psr\Log\LoggerInterface.
172+
* domainZone - доменная зона ("ru", "api-ru", "cloud", "io")
173+
174+
175+
Опциональные параметры:
176+
* $domain - Домен API URL ("api.mindbox", "api.s.mindbox", "api.maestra")
177+
178+
При передача домена, URL запроса формируется следующим образом:
179+
180+
https://{domain}.{domainZone}/v3/operations/
181+
182+
183+
``` php
184+
$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');
185+
$httpClient = (new \Mindbox\HttpClients\HttpClientFactory())->createHttpClient('{timeout}', '{handlerName}');
186+
187+
$client = new \Mindbox\Clients\MindboxClientV3(
188+
'{endpointId}',
189+
'{secretKey}',
190+
$httpClient,
191+
$logger,
192+
'{domainZone}'
193+
'{domain}'
194+
);
195+
196+
$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
197+
$customer->setEmail('test@test.ru');
198+
$customer->setMobilePhone('79374134389');
199+
$customer->setId('bitrixId', '123456');
200+
$customer->setId('mindboxId', '1028');
201+
202+
$operation = new \Mindbox\DTO\V3\OperationDTO();
203+
$operation->setCustomer($customer);
204+
205+
/* Формирование состава операции */
206+
try {
207+
$response = $client
208+
->prepareRequest('POST', 'Website.AuthorizeCustomer', $operation, '', [], false, false)
209+
->sendRequest();
210+
211+
$requestBody = $response->getRequest()->getBody();
212+
$responseBody = $response->getBody();
213+
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
214+
echo $e->getMessage();
215+
}
161216
```

docs/structure/Mindbox-Clients-MindboxClientV3.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Constants
2626

2727
### BASE_V3_URL
2828

29-
const BASE_V3_URL = 'https://api.mindbox.ru/v3/operations/'
29+
const BASE_V3_URL = 'https://{{url}}/v3/operations/'
3030

3131

3232

@@ -43,6 +43,13 @@ Constants
4343
Properties
4444
----------
4545

46+
### $url
47+
48+
private string $url
49+
50+
51+
* Visibility: **private**
52+
4653

4754
### $endpointId
4855

@@ -121,13 +128,23 @@ Properties
121128
* Visibility: **protected**
122129

123130

131+
### $headers
132+
133+
protected array $headers
134+
135+
136+
137+
138+
139+
* Visibility: **protected**
140+
124141
Methods
125142
-------
126143

127144

128145
### __construct
129146

130-
mixed Mindbox\Clients\AbstractMindboxClient::__construct(string $secretKey, \Mindbox\HttpClients\IHttpClient $httpClient, \Psr\Log\LoggerInterface $logger)
147+
mixed Mindbox\Clients\AbstractMindboxClient::__construct(string $secretKey, \Mindbox\HttpClients\IHttpClient $httpClient, \Psr\Log\LoggerInterface $logger, string $domainZone, string $domain)
131148

132149
Конструктор AbstractMindboxClient.
133150

@@ -141,6 +158,8 @@ Methods
141158
* $secretKey **string** - <p>Секретный ключ.</p>
142159
* $httpClient **[Mindbox\HttpClients\IHttpClient](Mindbox-HttpClients-IHttpClient.md)** - <p>Экземпляр HTTP клиента.</p>
143160
* $logger **Psr\Log\LoggerInterface** - <p>Экземпляр логгера.</p>
161+
* $domainZone **string** - <p>Доменная зона URL.</p>
162+
* $domain **string** - <p>API url.</p>
144163

145164

146165

@@ -277,6 +296,21 @@ Methods
277296
* $rawBody **string** - <p>Сырое тело ответа.</p>
278297

279298

299+
### getApiUrl
300+
301+
string Mindbox\Clients\AbstractMindboxClient::getApiUrl(string $domain, string $domainZone)
302+
303+
Преобразование API URL.
304+
305+
306+
307+
* Visibility: **protected**
308+
*
309+
310+
#### Arguments
311+
* $rawBody **string** - <p>Сырое тело ответа.</p>
312+
313+
280314

281315
### prepareRequest
282316

tests/Clients/AbstractMindboxClientTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function setUp(): void
6767
$this->domainZone = $this->domainZone;
6868
$this->httpClientStub = $this->getHttpClientStub();
6969
$this->loggerStub = $this->getLoggerStub();
70-
$this->client = $this->getClient($this->secret, $this->httpClientStub, $this->loggerStub, $this->domain);
70+
$this->client = $this->getClient($this->secret, $this->httpClientStub, $this->loggerStub);
7171
$this->dtoStub = $this->getDTOStub();
7272
}
7373

0 commit comments

Comments
 (0)