# [YooKassa API SDK](../home.md)
# Class: \YooKassa\Client\BaseClient
### Namespace: [\YooKassa\Client](../namespaces/yookassa-client.md)
---
---
### Constants
| Visibility | Name | Flag | Summary |
| ----------:| ---- | ---- | ------- |
| public | [ME_PATH](../classes/YooKassa-Client-BaseClient.md#constant_ME_PATH) | | Точка входа для запроса к API по магазину |
| public | [PAYMENTS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_PAYMENTS_PATH) | | Точка входа для запросов к API по платежам |
| public | [REFUNDS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_REFUNDS_PATH) | | Точка входа для запросов к API по возвратам |
| public | [WEBHOOKS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_WEBHOOKS_PATH) | | Точка входа для запросов к API по вебхукам |
| public | [RECEIPTS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_RECEIPTS_PATH) | | Точка входа для запросов к API по чекам |
| public | [DEALS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_DEALS_PATH) | | Точка входа для запросов к API по сделкам |
| public | [PAYOUTS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_PAYOUTS_PATH) | | Точка входа для запросов к API по выплатам |
| public | [PERSONAL_DATA_PATH](../classes/YooKassa-Client-BaseClient.md#constant_PERSONAL_DATA_PATH) | | Точка входа для запросов к API по персональным данным |
| public | [SBP_BANKS_PATH](../classes/YooKassa-Client-BaseClient.md#constant_SBP_BANKS_PATH) | | Точка входа для запросов к API по участникам СБП |
| public | [SELF_EMPLOYED_PATH](../classes/YooKassa-Client-BaseClient.md#constant_SELF_EMPLOYED_PATH) | | Точка входа для запросов к API по самозанятым |
| public | [IDEMPOTENCY_KEY_HEADER](../classes/YooKassa-Client-BaseClient.md#constant_IDEMPOTENCY_KEY_HEADER) | | Имя HTTP заголовка, используемого для передачи idempotence key |
| public | [DEFAULT_DELAY](../classes/YooKassa-Client-BaseClient.md#constant_DEFAULT_DELAY) | | Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202 |
| public | [DEFAULT_TRIES_COUNT](../classes/YooKassa-Client-BaseClient.md#constant_DEFAULT_TRIES_COUNT) | | Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202 |
| public | [DEFAULT_ATTEMPTS_COUNT](../classes/YooKassa-Client-BaseClient.md#constant_DEFAULT_ATTEMPTS_COUNT) | | Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202 |
---
### Properties
| Visibility | Name | Flag | Summary |
| ----------:| ---- | ---- | ------- |
| protected | [$apiClient](../classes/YooKassa-Client-BaseClient.md#property_apiClient) | | CURL клиент |
| protected | [$attempts](../classes/YooKassa-Client-BaseClient.md#property_attempts) | | Количество повторных запросов при ответе API статусом 202 |
| protected | [$config](../classes/YooKassa-Client-BaseClient.md#property_config) | | Настройки для CURL клиента |
| protected | [$logger](../classes/YooKassa-Client-BaseClient.md#property_logger) | | Объект для логирования работы SDK |
| protected | [$login](../classes/YooKassa-Client-BaseClient.md#property_login) | | shopId магазина |
| protected | [$password](../classes/YooKassa-Client-BaseClient.md#property_password) | | Секретный ключ магазина |
| protected | [$timeout](../classes/YooKassa-Client-BaseClient.md#property_timeout) | | Время через которое будут осуществляться повторные запросы |
---
### Methods
| Visibility | Name | Flag | Summary |
| ----------:| ---- | ---- | ------- |
| public | [__construct()](../classes/YooKassa-Client-BaseClient.md#method___construct) | | Constructor |
| public | [getApiClient()](../classes/YooKassa-Client-BaseClient.md#method_getApiClient) | | Возвращает CURL клиента для работы с API |
| public | [getConfig()](../classes/YooKassa-Client-BaseClient.md#method_getConfig) | | Возвращает настройки клиента |
| public | [isNotificationIPTrusted()](../classes/YooKassa-Client-BaseClient.md#method_isNotificationIPTrusted) | | Метод проверяет, находится ли IP адрес среди IP адресов Юkassa, с которых отправляются уведомления |
| public | [setApiClient()](../classes/YooKassa-Client-BaseClient.md#method_setApiClient) | | Устанавливает CURL клиента для работы с API |
| public | [setAuth()](../classes/YooKassa-Client-BaseClient.md#method_setAuth) | | Устанавливает авторизацию по логин/паролю |
| public | [setAuthToken()](../classes/YooKassa-Client-BaseClient.md#method_setAuthToken) | | Устанавливает авторизацию по Oauth-токену |
| public | [setConfig()](../classes/YooKassa-Client-BaseClient.md#method_setConfig) | | Устанавливает настройки клиента |
| public | [setLogger()](../classes/YooKassa-Client-BaseClient.md#method_setLogger) | | Устанавливает логгер приложения |
| public | [setMaxRequestAttempts()](../classes/YooKassa-Client-BaseClient.md#method_setMaxRequestAttempts) | | Установка значения количества попыток повторных запросов при статусе 202 |
| public | [setRetryTimeout()](../classes/YooKassa-Client-BaseClient.md#method_setRetryTimeout) | | Установка значения задержки между повторными запросами |
| protected | [decodeData()](../classes/YooKassa-Client-BaseClient.md#method_decodeData) | | Декодирует JSON строку в массив данных |
| protected | [delay()](../classes/YooKassa-Client-BaseClient.md#method_delay) | | Задержка между повторными запросами |
| protected | [encodeData()](../classes/YooKassa-Client-BaseClient.md#method_encodeData) | | Кодирует массив данных в JSON строку |
| protected | [execute()](../classes/YooKassa-Client-BaseClient.md#method_execute) | | Выполнение запроса и обработка 202 статуса |
| protected | [handleError()](../classes/YooKassa-Client-BaseClient.md#method_handleError) | | Выбрасывает исключение по коду ошибки |
---
### Details
* File: [lib/Client/BaseClient.php](../../lib/Client/BaseClient.php)
* Package: YooKassa
* Class Hierarchy:
* \YooKassa\Client\BaseClient
---
## Constants
###### ME_PATH
Точка входа для запроса к API по магазину
```php
ME_PATH = '/me'
```
###### PAYMENTS_PATH
Точка входа для запросов к API по платежам
```php
PAYMENTS_PATH = '/payments'
```
###### REFUNDS_PATH
Точка входа для запросов к API по возвратам
```php
REFUNDS_PATH = '/refunds'
```
###### WEBHOOKS_PATH
Точка входа для запросов к API по вебхукам
```php
WEBHOOKS_PATH = '/webhooks'
```
###### RECEIPTS_PATH
Точка входа для запросов к API по чекам
```php
RECEIPTS_PATH = '/receipts'
```
###### DEALS_PATH
Точка входа для запросов к API по сделкам
```php
DEALS_PATH = '/deals'
```
###### PAYOUTS_PATH
Точка входа для запросов к API по выплатам
```php
PAYOUTS_PATH = '/payouts'
```
###### PERSONAL_DATA_PATH
Точка входа для запросов к API по персональным данным
```php
PERSONAL_DATA_PATH = '/personal_data'
```
###### SBP_BANKS_PATH
Точка входа для запросов к API по участникам СБП
```php
SBP_BANKS_PATH = '/sbp_banks'
```
###### SELF_EMPLOYED_PATH
Точка входа для запросов к API по самозанятым
```php
SELF_EMPLOYED_PATH = '/self_employed'
```
###### IDEMPOTENCY_KEY_HEADER
Имя HTTP заголовка, используемого для передачи idempotence key
```php
IDEMPOTENCY_KEY_HEADER = 'Idempotence-Key'
```
###### DEFAULT_DELAY
Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202
```php
DEFAULT_DELAY = 1800
```
###### DEFAULT_TRIES_COUNT
Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
```php
DEFAULT_TRIES_COUNT = 3
```
###### DEFAULT_ATTEMPTS_COUNT
Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
```php
DEFAULT_ATTEMPTS_COUNT = 3
```
---
## Properties
#### protected $apiClient : null|\YooKassa\Client\ApiClientInterface
---
**Summary**
CURL клиент
**Type:** ApiClientInterface
**Details:**
#### protected $attempts : int
---
**Summary**
Количество повторных запросов при ответе API статусом 202
***Description***
Значение по умолчанию 3
**Type:** int
**Details:**
#### protected $config : array
---
**Summary**
Настройки для CURL клиента
**Type:** array
**Details:**
#### protected $logger : \Psr\Log\LoggerInterface|null
---
**Summary**
Объект для логирования работы SDK
**Type:** LoggerInterface|null
**Details:**
#### protected $login : string|int
---
**Summary**
shopId магазина
**Type:** string|int
**Details:**
#### protected $password : string
---
**Summary**
Секретный ключ магазина
**Type:** string
**Details:**
#### protected $timeout : int
---
**Summary**
Время через которое будут осуществляться повторные запросы
***Description***
Значение по умолчанию - 1800 миллисекунд.
**Type:** int
Значение в миллисекундах
**Details:**
---
## Methods
#### public __construct() : mixed
```php
public __construct(\YooKassa\Client\ApiClientInterface|null $apiClient = null, \YooKassa\Helpers\Config\ConfigurationLoaderInterface|null $configLoader = null) : mixed
```
**Summary**
Constructor
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| \YooKassa\Client\ApiClientInterface OR null | apiClient | |
| \YooKassa\Helpers\Config\ConfigurationLoaderInterface OR null | configLoader | |
**Returns:** mixed -
#### public getApiClient() : \YooKassa\Client\ApiClientInterface
```php
public getApiClient() : \YooKassa\Client\ApiClientInterface
```
**Summary**
Возвращает CURL клиента для работы с API
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
**Returns:** \YooKassa\Client\ApiClientInterface -
#### public getConfig() : array
```php
public getConfig() : array
```
**Summary**
Возвращает настройки клиента
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
**Returns:** array -
#### public isNotificationIPTrusted() : bool
```php
public isNotificationIPTrusted(string $ip) : bool
```
**Summary**
Метод проверяет, находится ли IP адрес среди IP адресов Юkassa, с которых отправляются уведомления
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| string | ip | IPv4 или IPv6 адрес webhook уведомления |
##### Throws:
| Type | Description |
| ---- | ----------- |
| \Exception | Выбрасывается, если будет передан IP адрес неверного формата |
**Returns:** bool -
#### public setApiClient() : $this
```php
public setApiClient(\YooKassa\Client\ApiClientInterface $apiClient) : $this
```
**Summary**
Устанавливает CURL клиента для работы с API
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| \YooKassa\Client\ApiClientInterface | apiClient | |
**Returns:** $this -
#### public setAuth() : $this
```php
public setAuth(string $login, string $password) : $this
```
**Summary**
Устанавливает авторизацию по логин/паролю
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| string | login | |
| string | password | |
**Returns:** $this -
##### Examples:
01-client.php 7 1 Пример авторизации:
```php
```
#### public setAuthToken() : $this
```php
public setAuthToken(string $token) : $this
```
**Summary**
Устанавливает авторизацию по Oauth-токену
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| string | token | |
**Returns:** $this -
##### Examples:
01-client.php 9 1 Пример авторизации:
```php
```
#### public setConfig() : mixed
```php
public setConfig(array $config) : mixed
```
**Summary**
Устанавливает настройки клиента
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| array | config | |
**Returns:** mixed -
#### public setLogger() : mixed
```php
public setLogger(null|callable|object|\Psr\Log\LoggerInterface $value) : mixed
```
**Summary**
Устанавливает логгер приложения
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| null OR callable OR object OR \Psr\Log\LoggerInterface | value | Инстанс логгера |
**Returns:** mixed -
#### public setMaxRequestAttempts() : $this
```php
public setMaxRequestAttempts(int $attempts) : $this
```
**Summary**
Установка значения количества попыток повторных запросов при статусе 202
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| int | attempts | |
**Returns:** $this -
#### public setRetryTimeout() : $this
```php
public setRetryTimeout(int $timeout) : $this
```
**Summary**
Установка значения задержки между повторными запросами
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| int | timeout | |
**Returns:** $this -
#### protected decodeData() : array
```php
protected decodeData(\YooKassa\Common\ResponseObject $response) : array
```
**Summary**
Декодирует JSON строку в массив данных
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| \YooKassa\Common\ResponseObject | response | Объект ответа на запрос к API |
**Returns:** array - Массив данных
#### protected delay() : mixed
```php
protected delay(\YooKassa\Common\ResponseObject $response) : mixed
```
**Summary**
Задержка между повторными запросами
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| \YooKassa\Common\ResponseObject | response | Объект ответа на запрос к API |
**Returns:** mixed -
#### protected encodeData() : string
```php
protected encodeData(array $serializedData) : string
```
**Summary**
Кодирует массив данных в JSON строку
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| array | serializedData | Массив данных для кодировки |
##### Throws:
| Type | Description |
| ---- | ----------- |
| \Exception | Выбрасывается, если не удалось конвертировать данные в строку JSON |
**Returns:** string - Строка JSON
#### protected execute() : mixed|\YooKassa\Common\ResponseObject
```php
protected execute(string $path, string $method, array $queryParams, string|null $httpBody = null, array $headers = array()) : mixed|\YooKassa\Common\ResponseObject
```
**Summary**
Выполнение запроса и обработка 202 статуса
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| string | path | URL запроса |
| string | method | HTTP метод |
| array | queryParams | Массив GET параметров запроса |
| string OR null | httpBody | Тело запроса |
| array | headers | Массив заголовков запроса |
##### Throws:
| Type | Description |
| ---- | ----------- |
| \YooKassa\Common\Exceptions\ApiException | |
| \YooKassa\Common\Exceptions\AuthorizeException | |
| \YooKassa\Common\Exceptions\ApiConnectionException | |
| \YooKassa\Common\Exceptions\ExtensionNotFoundException | |
**Returns:** mixed|\YooKassa\Common\ResponseObject -
#### protected handleError() : mixed
```php
protected handleError(\YooKassa\Common\ResponseObject $response) : mixed
```
**Summary**
Выбрасывает исключение по коду ошибки
**Details:**
* Inherited From: [\YooKassa\Client\BaseClient](../classes/YooKassa-Client-BaseClient.md)
##### Parameters:
| Type | Name | Description |
| ---- | ---- | ----------- |
| \YooKassa\Common\ResponseObject | response | |
##### Throws:
| Type | Description |
| ---- | ----------- |
| \YooKassa\Common\Exceptions\ApiException | Неожиданный код ошибки. |
| \YooKassa\Common\Exceptions\BadApiRequestException | Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API. |
| \YooKassa\Common\Exceptions\ForbiddenException | Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции. |
| \YooKassa\Common\Exceptions\InternalServerError | Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности. |
| \YooKassa\Common\Exceptions\NotFoundException | Ресурс не найден. |
| \YooKassa\Common\Exceptions\ResponseProcessingException | Запрос был принят на обработку, но она не завершена. |
| \YooKassa\Common\Exceptions\TooManyRequestsException | Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов. |
| \YooKassa\Common\Exceptions\UnauthorizedException | Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации. |
| \YooKassa\Common\Exceptions\AuthorizeException | Ошибка авторизации. Не установлен заголовок. |
**Returns:** mixed -
---
### Top Namespaces
* [\YooKassa](../namespaces/yookassa.md)
---
### Reports
* [Errors - 0](../reports/errors.md)
* [Markers - 1](../reports/markers.md)
* [Deprecated - 25](../reports/deprecated.md)
---
This document was automatically generated from source code comments on 2023-04-06 using [phpDocumentor](http://www.phpdoc.org/)
© 2023 YooMoney