Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change docs #46

Merged
merged 17 commits into from
Jun 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 29 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Mindbox PHP SDK

[![Build Status](https://travis-ci.org/mindbox-moscow/php-sdk.svg?branch=master)](https://travis-ci.org/mindbox-moscow/php-sdk)

PHP библиотека для упрощённого взаимодейтсвия вашего PHP приложения с API Mindbox. С полной документацией API Mindbox можно ознакомиться [здесь](https://developers.mindbox.ru/docs/v3).

## Начало работы
Expand Down Expand Up @@ -39,20 +37,27 @@ require_once __DIR__ . '/path/to/mindboxSDK/vendor/autoload.php';
```

## Использование
Обязательные параметры конфигурации SDK:
- `{logsDir}` - директория для логов
- `{endpointId}` - уникальный идентификатор сайта/мобильного приложения/и т.п. Значение нужно уточнить у менеджера Mindbox.
- `{secretKey}` - секретный ключ, соответствующий endpointId. Значение нужно уточнить у менеджера Mindbox.
- `{domainZone}` домен API Mindbox, на который будут отправляться запросы

Опциональные параметры:
- `{timeout}` таймаут соединения http запроса (в секундах), опционально. По умолчанию 5 секунд.
- `{httpClient}` способ отправки запроса ("curl", "stream"), опционально. По умолчанию curl, если установлено расширение ext-curl, иначе stream.

### Инициализация SDK

```php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$logger = new \Mindbox\Loggers\MindboxFileLogger('{путь/к/директории/в/которую/будут/записаны/логи}');
$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');

$mindbox = new \Mindbox\Mindbox([
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domain' => '{domain}',
//'timeout' => '{timeout}', // Таймаут соединения http запроса (в секундах), опционально. По умолчанию 5 секунд.
//'httpClient' => '{httpClient}', // Способ отправки запроса ("curl", "stream"), опционально. По умолчанию curl, если установлено расширение ext-curl, иначе stream.
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domainZone' => '{domainZone}',
//'timeout' => '{timeout}',
//'httpClient' => '{httpClient}',
], $logger);
```

Expand All @@ -64,17 +69,15 @@ $mindbox = new \Mindbox\Mindbox([
Простой пример отправки запроса авторизации потребителя к Mindbox с использованием хелпера:

```php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');

$mindbox = new \Mindbox\Mindbox([
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domain' => '{domain}',
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domainZone' => '{domainZone}',
], $logger);

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer = new \Mindbox\DTO\CustomerRequestDTO();
$customer->setEmail('test@test.ru');
$customer->setMobilePhone('77777777777');
$customer->setId('mindboxId', '1028');
Expand All @@ -83,13 +86,13 @@ try {
$response = $mindbox->customer()
->authorize($customer, 'Website.AuthorizeCustomer')
->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();
return;
}

var_dump($response->getRequest()->getBody());
var_dump($response->getBody());
```

Подробнее об использовании хелперов SDK [здесь](docs/README.md#примеры-использования-sdk).
Expand All @@ -99,19 +102,18 @@ var_dump($response->getBody());
Запросы, для которых не реализованы хелперы, можно выполнить с помощью универсальных методов:

```php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');

$mindbox = new \Mindbox\Mindbox([
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domain' => '{domain}',
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domainZone' => '{domainZone}',
], $logger);

$operation = new \Mindbox\DTO\V3\OperationDTO();
$operation = new \Mindbox\DTO\OperationDTO();

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer = new \Mindbox\DTO\CustomerRequestDTO();
$customer->setEmail('test@test.ru');
$customer->setMobilePhone('77777777777');
$customer->setId('mindboxId', '1028');
Expand All @@ -122,13 +124,11 @@ try {
$response = $mindbox->getClientV3()
->prepareRequest('POST', 'Website.AuthorizeCustomer', $operation, '', [], false)
->sendRequest();
$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();
return;
}

var_dump($response->getRequest()->getBody());
var_dump($response->getBody());
```

Подробнее об использовании универсальных методов SDK [здесь](docs/README.md#примеры-использования-sdk).
Expand Down
53 changes: 22 additions & 31 deletions docs/examples/customer_helper.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,22 @@ try {
'Website.AuthorizeCustomer', // название операции
false // добавлять ли DeviceUUID в запрос, необязательный параметр
)->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();

return;
}

var_dump($response->getRequest());
var_dump($response->getBody());
```

[Поиск потребителя по номеру телефона](https://developers.mindbox.ru/docs/получение-данных-потребителя):

``` php

/* Подключение автозагрузчика и инициализация SDK */
/* Иинициализация SDK */

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer->setMobilePhone(77777777777);
$customer->setMobilePhone(79999999999);

try {
$response = $mindbox->customer()
Expand All @@ -50,10 +48,11 @@ try {
'Website.CheckCustomerByMobilePhone', // название операции
false // добавлять ли DeviceUUID в запрос, необязательный параметр
)->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();

return;
}

var_dump($response->getRequest());
Expand All @@ -64,7 +63,7 @@ var_dump($response->getBody());

``` php

/* Подключение автозагрузчика и инициализация SDK */
/* Инициализация SDK */

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer->setEmail('test@test.ru');
Expand All @@ -76,71 +75,63 @@ try {
'Website.CheckCustomerByEmail', // название операции
false // добавлять ли DeviceUUID в запрос, необязательный параметр
)->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();

return;
}

var_dump($response->getRequest());
var_dump($response->getBody());
```

[Регистрация потребителя](https://developers.mindbox.ru/docs/получение-данных-потребителя):

``` php

/* Подключение автозагрузчика и инициализация SDK */

/* Инициализация SDK */
$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer->setEmail('test@test.ru');

/* Формирование данных о потребителе */

/* Отправка запроса в Mindbox */
try {
$response = $mindbox->customer()
->register(
$customer, // CustomerRequestDTO
'Website.RegisterCustomer', // название операции
false // добавлять ли DeviceUUID в запрос, необязательный параметр
)->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();

return;
}

var_dump($response->getRequest());
var_dump($response->getBody());
```

[Редактирование данных потребителя](https://developers.mindbox.ru/docs/userredxml):

``` php

/* Подключение автозагрузчика и инициализация SDK */

/* Инициализация SDK */
$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
$customer->setEmail('test@test.ru');
$customer->setId('mindboxId', 12345);

/* Формирование данных о потребителе */

/* Отправка запроса в Mindbox */
try {
$response = $mindbox->customer()
->edit(
$customer, // CustomerRequestDTO
'Website.EditCustomer', // название операции
false // добавлять ли DeviceUUID в запрос, необязательный параметр
)->sendRequest();

$requestBody = $response->getRequest()->getBody();
$responseBody = $response->getBody();
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
echo $e->getMessage();

return;
}

var_dump($response->getRequest());
var_dump($response->getBody());
```

[Дозаполнение профиля потребителя](https://developers.mindbox.ru/docs/userredxml):
Expand Down
4 changes: 0 additions & 4 deletions docs/examples/dto_constructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ DTO в Mindbox SDK используются для упрощения форми
## Пример

``` php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$operation = new \Mindbox\DTO\V3\OperationDTO([
'customer' => [
'firstName' => 'some_firstName',
Expand Down Expand Up @@ -85,8 +83,6 @@ JSON:
Пример:

``` php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$operation = new \Mindbox\DTO\V3\OperationDTO([
'customer' => [
'firstName' => 'some_firstName',
Expand Down
6 changes: 2 additions & 4 deletions docs/examples/dto_setters.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ DTO в Mindbox SDK используются для упрощения форми
## Пример

``` php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$operation = new \Mindbox\DTO\V3\OperationDTO();

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
Expand All @@ -32,12 +30,14 @@ $subscriptionsData = [
];

$subscriptionsCollection = [];

foreach ($subscriptionsData as $subscriptionsDatum) {
$subscription = new \Mindbox\DTO\V3\Requests\SubscriptionRequestDTO();
$subscription->setPointOfContact($subscriptionsDatum['pointOfContact']);
$subscription->setTopic($subscriptionsDatum['topic']);
$subscriptionsCollection[] = $subscription;
}

$subscriptions = new \Mindbox\DTO\V3\Requests\SubscriptionRequestCollection($subscriptionsCollection);
$customer->setSubscriptions($subscriptions);

Expand Down Expand Up @@ -98,8 +98,6 @@ JSON:
Пример:

``` php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$operation = new \Mindbox\DTO\V3\OperationDTO();

$customer = new \Mindbox\DTO\V3\Requests\CustomerRequestDTO();
Expand Down
31 changes: 7 additions & 24 deletions docs/examples/exceptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,51 +18,34 @@
## Пример обработки исключений

```php
require_once __DIR__ . '{путь/до/автозагрузчика}';

$logger = new \Mindbox\Loggers\MindboxFileLogger('{logsDir}');

$mindbox = new \Mindbox\Mindbox([
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domain' => '{domain}',
'endpointId' => '{endpointId}',
'secretKey' => '{secretKey}',
'domainZone' => '{domain}',
], $logger);

try {
$response = $mindbox->order()
->getOrders(10, 252, 0, 'DirectCrm.V21CustomerOrderListOperation')
->sendRequest();
} catch (\Mindbox\Exceptions\MindboxBadRequestException $e) {
/* можно отлавливать и обрабатывать определённое исключение, в данном случае с кодом ответа 400 */
echo $e->getMessage().PHP_EOL;

$mindbox->order()->getLastResponse();

/* можно отлавливать и обрабатывать определённое исключение, в данном случае с кодом ответа 400 */

return;
} catch (\Mindbox\Exceptions\MindboxClientErrorException $e) {
/* можно отлавливать и обрабатывать более общее исключение, в данном случае с кодом ответа 4XX */
echo $e->getMessage().PHP_EOL;

$mindbox->order()->getLastResponse();

/* можно отлавливать и обрабатывать более общее исключение, в данном случае с кодом ответа 4XX */

return;
} catch (\Mindbox\Exceptions\MindboxUnavailableException $e) {
/* можно отлавливать и каким-либо образом обрабатывать исключение с кодом ответа 5XX */
echo $e->getMessage().PHP_EOL;

$mindbox->order()->getLastResponse();

/* можно отлавливать и каким-либо образом обрабатывать исключение с кодом ответа 5XX */

return;
} catch (\Mindbox\Exceptions\MindboxClientException $e) {
/* можно отлавливать самое верхнеуровневое исключение */
echo $e->getMessage().PHP_EOL;

$mindbox->order()->getLastResponse();

/* можно отлавливать самое верхнеуровневое исключение */

return;
}
```
Loading