Добавлены новые методы. Изменены некоторые методы

Обновлены описания классов, свойств и методов для документации
Добавлена документация
Добавлены примеры использования SDK
This commit is contained in:
Антон Н. Николаев
2021-04-21 11:24:28 +03:00
parent 25c35bb316
commit bd2a5b95fd
399 changed files with 93734 additions and 577 deletions
+72 -29
View File
@@ -46,15 +46,22 @@ use YooKassa\Helpers\Config\ConfigurationLoaderInterface;
class BaseClient
{
const PAYMENTS_PATH = '/payments';
const REFUNDS_PATH = '/refunds';
const WEBHOOKS_PATH = '/webhooks';
const RECEIPTS_PATH = '/receipts';
/** Точка входа для запроса к API по магазину */
const ME_PATH = '/me';
/**
* Имя HTTP заголовка, используемого для передачи idempotence key
*/
/** Точка входа для запросов к API по платежам */
const PAYMENTS_PATH = '/payments';
/** Точка входа для запросов к API по возвратам */
const REFUNDS_PATH = '/refunds';
/** Точка входа для запросов к API по вебхукам */
const WEBHOOKS_PATH = '/webhooks';
/** Точка входа для запросов к API по чекам */
const RECEIPTS_PATH = '/receipts';
/** Имя HTTP заголовка, используемого для передачи idempotence key */
const IDEMPOTENCY_KEY_HEADER = 'Idempotence-Key';
/**
@@ -63,51 +70,61 @@ class BaseClient
*/
const DEFAULT_DELAY = 1800;
/**
* Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
*/
/** Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202 */
const DEFAULT_TRIES_COUNT = 3;
/**
* Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
*/
/** Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202 */
const DEFAULT_ATTEMPTS_COUNT = 3;
/**
* CURL клиент
*
* @var null|ApiClientInterface
*/
protected $apiClient;
/**
* @var string
* shopId магазина
*
* @var string|int
*/
protected $login;
/**
* Секретный ключ магазина
*
* @var string
*/
protected $password;
/**
* Настройки для CURL клиента
*
* @var array
*/
protected $config;
/**
* Время через которое будут осуществляться повторные запросы
*
* Значение по умолчанию - 1800 миллисекунд.
*
* @var int значение в миллисекундах
*/
protected $timeout;
/**
* Количество повторных запросов при ответе API статусом 202
*
* Значение по умолчанию 3
*
* @var int
*/
protected $attempts;
/**
* Объект для логирования работы SDK
*
* @var LoggerInterface|null
*/
protected $logger;
@@ -127,19 +144,23 @@ class BaseClient
if ($configLoader === null) {
$configLoader = new ConfigurationLoader();
}
$config = $configLoader->load()->getConfig();
$config = $configLoader->load()->getConfig();
$this->setConfig($config);
$apiClient->setConfig($config);
$this->attempts = self::DEFAULT_ATTEMPTS_COUNT;
$this->attempts = self::DEFAULT_ATTEMPTS_COUNT;
$this->apiClient = $apiClient;
}
/**
* @param $login
* @param $password
* Устанавливает авторизацию по логин/паролю
*
* @return static $this
* @example 01-client.php 7 1 Пример авторизации
*
* @param string $login
* @param string $password
*
* @return $this
*/
public function setAuth($login, $password)
{
@@ -155,7 +176,11 @@ class BaseClient
}
/**
* @param $token
* Устанавливает авторизацию по Oauth-токену
*
* @example 01-client.php 9 1 Пример авторизации
*
* @param string $token
*
* @return $this
*/
@@ -170,6 +195,8 @@ class BaseClient
}
/**
* Возвращает CURL клиента для работы с API
*
* @return ApiClientInterface
*/
public function getApiClient()
@@ -178,9 +205,11 @@ class BaseClient
}
/**
* Устанавливает CURL клиента для работы с API
*
* @param ApiClientInterface $apiClient
*
* @return static $this
* @return $this
*/
public function setApiClient(ApiClientInterface $apiClient)
{
@@ -209,6 +238,8 @@ class BaseClient
}
/**
* Возвращает настройки клиента
*
* @return array
*/
public function getConfig()
@@ -217,6 +248,8 @@ class BaseClient
}
/**
* Устанавливает настройки клиента
*
* @param array $config
*/
public function setConfig($config)
@@ -225,11 +258,11 @@ class BaseClient
}
/**
* Установка значение задержки между повторными запросами
* Установка значения задержки между повторными запросами
*
* @param int $timeout
*
* @return static
* @return $this
*/
public function setRetryTimeout($timeout)
{
@@ -243,7 +276,7 @@ class BaseClient
*
* @param int $attempts
*
* @return static
* @return $this
*/
public function setMaxRequestAttempts($attempts)
{
@@ -253,7 +286,9 @@ class BaseClient
}
/**
* @param $serializedData
* Кодирует массив данных в JSON строку
*
* @param array $serializedData
*
* @return string
* @throws Exception
@@ -279,6 +314,10 @@ class BaseClient
}
/**
* Убирает лишние обратные слэши, а также декодирует строку UTF-8 в нормальный вид
*
* Вспомогательная функция для старых версий PHP
*
* @param string $json
* @return string|false
*/
@@ -296,6 +335,8 @@ class BaseClient
}
/**
* Декодирует JSON строку в массив данных
*
* @param ResponseObject $response
*
* @return array
@@ -311,6 +352,8 @@ class BaseClient
}
/**
* Выбрасывает исключение по коду ошибки
*
* @param ResponseObject $response
*
* @throws ApiException
@@ -361,7 +404,7 @@ class BaseClient
/**
* Задержка между повторными запросами
*
* @param $response
* @param ResponseObject $response
*/
protected function delay($response)
{
@@ -382,9 +425,9 @@ class BaseClient
/**
* Выполнение запроса и обработка 202 статуса
*
* @param $path
* @param $method
* @param $queryParams
* @param string $path
* @param string $method
* @param array $queryParams
* @param null $httpBody
* @param array $headers
*