Files
yookassa-sdk-php/docs/classes/YooKassa-Client.md
T
Антон Н. Николаев bd2a5b95fd Добавлены новые методы. Изменены некоторые методы
Обновлены описания классов, свойств и методов для документации
Добавлена документация
Добавлены примеры использования SDK
2021-04-21 11:24:28 +03:00

61 KiB

YooKassa API SDK

Class: \YooKassa\Client

Namespace: \YooKassa


Summary:

Класс клиента API


Examples

Создание клиента

require_once '../vendor/autoload.php';

$client = new \YooKassa\Client();
// по логин/паролю
$client->setAuth('xxxxxx', 'test_XXXXXXX');
// или по oauth токену
$client->setAuthToken('token_XXXXXXX');


Constants

Visibility Name Flag Summary
public ME_PATH Точка входа для запроса к API по магазину
public PAYMENTS_PATH Точка входа для запросов к API по платежам
public REFUNDS_PATH Точка входа для запросов к API по возвратам
public WEBHOOKS_PATH Точка входа для запросов к API по вебхукам
public RECEIPTS_PATH Точка входа для запросов к API по чекам
public IDEMPOTENCY_KEY_HEADER Имя HTTP заголовка, используемого для передачи idempotence key
public DEFAULT_DELAY Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202
public DEFAULT_TRIES_COUNT Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
public DEFAULT_ATTEMPTS_COUNT Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
public SDK_VERSION Текущая версия библиотеки

Properties

Visibility Name Flag Summary
protected $apiClient CURL клиент
protected $attempts Количество повторных запросов при ответе API статусом 202
protected $config Настройки для CURL клиента
protected $logger Объект для логирования работы SDK
protected $login shopId магазина
protected $password Секретный ключ магазина
protected $timeout Время через которое будут осуществляться повторные запросы

Methods

Visibility Name Flag Summary
public __construct() Constructor
public addWebhook() Создание Webhook
public cancelPayment() Отменить незавершенную оплату заказа.
public capturePayment() Подтверждение платежа
public createPayment() Создание платежа.
public createReceipt() Отправка чека в облачную кассу
public createRefund() Проведение возврата платежа
public getApiClient() Возвращает CURL клиента для работы с API
public getConfig() Возвращает настройки клиента
public getPaymentInfo() Получить информацию о платеже
public getPayments() Получить список платежей магазина
public getReceiptInfo() Получить информацию о чеке
public getReceipts() Получить список чеков магазина
public getRefundInfo() Получить информацию о возврате
public getRefunds() Получить список возвратов платежей
public getWebhooks() Список созданных Webhook
public me() Информация о магазине
public removeWebhook() Удаление Webhook
public setApiClient() Устанавливает CURL клиента для работы с API
public setAuth() Устанавливает авторизацию по логин/паролю
public setAuthToken() Устанавливает авторизацию по Oauth-токену
public setConfig() Устанавливает настройки клиента
public setLogger() Устанавливает логгер приложения
public setMaxRequestAttempts() Установка значения количества попыток повторных запросов при статусе 202
public setRetryTimeout() Установка значения задержки между повторными запросами
protected decodeData() Декодирует JSON строку в массив данных
protected delay() Задержка между повторными запросами
protected encodeData() Кодирует массив данных в JSON строку
protected execute() Выполнение запроса и обработка 202 статуса
protected handleError() Выбрасывает исключение по коду ошибки

Details


Tags

Tag Version Description
since 1.0.1

Constants

ME_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запроса к API по магазину

ME_PATH = '/me'

PAYMENTS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по платежам

PAYMENTS_PATH = '/payments'

REFUNDS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по возвратам

REFUNDS_PATH = '/refunds'

WEBHOOKS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по вебхукам

WEBHOOKS_PATH = '/webhooks'

RECEIPTS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по чекам

RECEIPTS_PATH = '/receipts'

IDEMPOTENCY_KEY_HEADER

Inherited from \YooKassa\Client\BaseClient

Имя HTTP заголовка, используемого для передачи idempotence key

IDEMPOTENCY_KEY_HEADER = 'Idempotence-Key'

DEFAULT_DELAY

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202

DEFAULT_DELAY = 1800

DEFAULT_TRIES_COUNT

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202

DEFAULT_TRIES_COUNT = 3

DEFAULT_ATTEMPTS_COUNT

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202

DEFAULT_ATTEMPTS_COUNT = 3

SDK_VERSION

Текущая версия библиотеки

SDK_VERSION = '2.1.0'

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

public __construct(\YooKassa\Client\ApiClientInterface|null  apiClient = null, \YooKassa\Helpers\Config\ConfigurationLoaderInterface|null  configLoader = null) : mixed

Summary

Constructor

Details:

Parameters:
Type Name Description
\YooKassa\Client\ApiClientInterface OR null apiClient
\YooKassa\Helpers\Config\ConfigurationLoaderInterface OR null configLoader

Returns: mixed -

public addWebhook() : \YooKassa\Model\Webhook\Webhook|null

public addWebhook( request, null  idempotencyKey = null) : \YooKassa\Model\Webhook\Webhook|null

Summary

Создание Webhook

Description

Запрос позволяет подписаться на уведомления о событии (например, на переход платежа в статус successed).

Details:

Parameters:
Type Name Description
request
null idempotencyKey
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Model\Webhook\Webhook|null -

Examples:

Создание Webhook:

// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = array(
        \YooKassa\Model\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\NotificationEventType::PAYMENT_CANCELED
    );
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }
            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(array('event' => $event, 'url' => $webHookUrl));
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public cancelPayment() : \YooKassa\Request\Payments\Payment\CancelResponse

public cancelPayment( paymentId,  idempotencyKey = null) : \YooKassa\Request\Payments\Payment\CancelResponse

Summary

Отменить незавершенную оплату заказа.

Description

Отменяет платеж, находящийся в статусе waiting_for_capture. Отмена платежа значит, что вы не готовы выдать пользователю товар или оказать услугу. Как только вы отменяете платеж, мы начинаем возвращать деньги на счет плательщика. Для платежей банковскими картами отмена происходит мгновенно. Для остальных способов оплаты возврат может занимать до нескольких дней.

Details:

Parameters:
Type Name Description
paymentId
idempotencyKey {@link}
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Request\Payments\Payment\CancelResponse -

Examples:

Отменить незавершенную оплату заказа:

$paymentId = '24e89cb0-000f-5000-9000-1de77fa0d6df';
try {
    $response = $client->cancelPayment($paymentId, uniqid('', true));
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public capturePayment() : \YooKassa\Request\Payments\Payment\CreateCaptureResponse

public capturePayment(\YooKassa\Request\Payments\Payment\CreateCaptureRequestInterface|array  captureRequest,  paymentId,  idempotencyKey = null) : \YooKassa\Request\Payments\Payment\CreateCaptureResponse

Summary

Подтверждение платежа

Description

Подтверждает вашу готовность принять платеж. Платеж можно подтвердить, только если он находится в статусе waiting_for_capture. Если платеж подтвержден успешно — значит, оплата прошла, и вы можете выдать товар или оказать услугу пользователю. На следующий день после подтверждения платеж попадет в реестр, и ЮKassa переведет деньги на ваш расчетный счет. Если вы не подтверждаете платеж до момента, указанного в expire_at, по умолчанию он отменяется, а деньги возвращаются пользователю. При оплате банковской картой у вас есть 7 дней на подтверждение платежа. Для остальных способов оплаты платеж необходимо подтвердить в течение 6 часов.

Details:

Parameters:
Type Name Description
\YooKassa\Request\Payments\Payment\CreateCaptureRequestInterface OR array captureRequest
paymentId
idempotencyKey {@link}
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Request\Payments\Payment\CreateCaptureResponse -

Examples:

Подтверждение платежа:

$paymentId = '24e89cb0-000f-5000-9000-1de77fa0d6df';
try {
    $response = $client->capturePayment(
        array(
            'amount' => array(
                'value' => '1500.00',
                'currency' => 'RUB',
            ),
            'transfers' => array(
                array(
                    'account_id' => '123',
                    'amount' => array(
                        'value' => '1000.00',
                        'currency' => 'RUB',
                    ),
                ),
                array(
                    'account_id' => '456',
                    'amount' => array(
                        'value' => '500.00',
                        'currency' => 'RUB',
                    ),
                ),
            ),
        ),
        $paymentId,
        uniqid('', true)
    );
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public createPayment() : \YooKassa\Request\Payments\CreatePaymentResponse

public createPayment(\YooKassa\Request\Payments\CreatePaymentRequestInterface|array  payment, string|null  idempotenceKey = null) : \YooKassa\Request\Payments\CreatePaymentResponse

Summary

Создание платежа.

Description

Чтобы принять оплату, необходимо создать объект платежа — Payment. Он содержит всю необходимую информацию для проведения оплаты (сумму, валюту и статус). У платежа линейный жизненный цикл, он последовательно переходит из статуса в статус.

Необходимо указать один из параметров:

  • payment_token — оплата по одноразовому PaymentToken, сформированному виджетом YooKassa JS;
  • payment_method_id — оплата по сохраненным платежным данным;
  • payment_method_data — оплата по новым платежным данным.

Если не указан ни один параметр и confirmation.type = redirect, то в качестве confirmation_url возвращается ссылка, по которой пользователь сможет самостоятельно выбрать подходящий способ оплаты. Дополнительные параметры:

  • confirmation — передается, если необходимо уточнить способ подтверждения платежа;
  • recipient — указывается при наличии нескольких товаров;
  • metadata — дополнительные данные (передаются магазином).

Details:

Parameters:
Type Name Description
\YooKassa\Request\Payments\CreatePaymentRequestInterface OR array payment
string OR null idempotenceKey {@link}
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Request\Payments\CreatePaymentResponse -

Examples:

Запрос на создание платежа:

try {
    $idempotenceKey = uniqid('', true);
    $response = $client->createPayment(
        array(
            'amount' => array(
                'value' => '1.00',
                'currency' => 'RUB',
            ),
            'confirmation' => array(
                'type' => 'redirect',
                'return_url' => 'https://merchant-site.ru/payment-notification',
            ),
            'description' => 'Оплата заказа на сумму 1 руб',
            'metadata' => array(
                'orderNumber' => 1001
            ),
            'capture' => true,
        ),
        $idempotenceKey
    );
    $confirmation = $response->getConfirmation();
    $redirectUrl = $confirmation->getConfirmationUrl();
    // Далее производим редирект на полученный URL
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public createReceipt() : \YooKassa\Request\Receipts\AbstractReceiptResponse|null

public createReceipt(\YooKassa\Request\Receipts\CreatePostReceiptRequestInterface|array  receipt, string|null  idempotenceKey = null) : \YooKassa\Request\Receipts\AbstractReceiptResponse|null

Summary

Отправка чека в облачную кассу

Description

Создает объект чека — Receipt. Возвращает успешно созданный чек по уникальному идентификатору платежа или возврата.

Details:

Parameters:
Type Name Description
\YooKassa\Request\Receipts\CreatePostReceiptRequestInterface OR array receipt
string OR null idempotenceKey
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Request\Receipts\AbstractReceiptResponse|null -

Examples:

Запрос на создание чека:

try {
    $response = $client->createReceipt(
        array(
            'customer' => array(
                'email' => 'johndoe@yoomoney.ru',
                'phone' => '79000000000',
            ),
            'type' => 'payment',
            'payment_id' => '24e89cb0-000f-5000-9000-1de77fa0d6df',
            'on_behalf_of' => '123',
            'send' => true,
            'items' => array(
                array(
                    'description' => 'Платок Gucci',
                    'quantity' => '1.00',
                    'amount' => array(
                        'value' => '3000.00',
                        'currency' => 'RUB',
                    ),
                    'vat_code' => 2,
                    'payment_mode' => 'full_payment',
                    'payment_subject' => 'commodity',
                ),
            ),
            'tax_system_code' => 1,
        ),
        uniqid('', true)
    );
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public createRefund() : \YooKassa\Request\Refunds\CreateRefundResponse

public createRefund(\YooKassa\Request\Refunds\CreateRefundRequestInterface|array  request, null  idempotencyKey = null) : \YooKassa\Request\Refunds\CreateRefundResponse

Summary

Проведение возврата платежа

Description

Создает объект возврата — Refund. Возвращает успешно завершенный платеж по уникальному идентификатору этого платежа. Создание возврата возможно только для платежей в статусе succeeded. Комиссии за проведение возврата нет. Комиссия, которую ЮKassa берёт за проведение исходного платежа, не возвращается.

Details:

Parameters:
Type Name Description
\YooKassa\Request\Refunds\CreateRefundRequestInterface OR array request
null idempotencyKey {@link}
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Request\Refunds\CreateRefundResponse -

Examples:

Запрос на создание возврата:

try {
    $response = $client->createRefund(
        array(
            'payment_id' => '24e89cb0-000f-5000-9000-1de77fa0d6df',
            'amount' => array(
                'value' => '1000.00',
                'currency' => 'RUB',
            ),
            'sources' => array(
                array(
                    'account_id' => '456',
                    'amount' => array(
                        'value' => '1000.00',
                        'currency' => 'RUB',
                    )
                ),
            ),
        ),
        uniqid('', true)
    );
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getApiClient() : \YooKassa\Client\ApiClientInterface

public getApiClient() : \YooKassa\Client\ApiClientInterface

Summary

Возвращает CURL клиента для работы с API

Details:

Returns: \YooKassa\Client\ApiClientInterface -

public getConfig() : array

public getConfig() : array

Summary

Возвращает настройки клиента

Details:

Returns: array -

public getPaymentInfo() : \YooKassa\Model\PaymentInterface

public getPaymentInfo(string  paymentId) : \YooKassa\Model\PaymentInterface

Summary

Получить информацию о платеже

Description

Запрос позволяет получить информацию о текущем состоянии платежа по его уникальному идентификатору. Выдает объект платежа {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string paymentId
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException

Returns: \YooKassa\Model\PaymentInterface -

Examples:

Получить информацию о платеже:

try {
    $response = $client->getPaymentInfo('24e89cb0-000f-5000-9000-1de77fa0d6df');
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getPayments() : \YooKassa\Request\Payments\PaymentsResponse

public getPayments(\YooKassa\Request\Payments\PaymentsRequestInterface|array|null  filter = null) : \YooKassa\Request\Payments\PaymentsResponse

Summary

Получить список платежей магазина

Description

Запрос позволяет получить список платежей, отфильтрованный по заданным критериям. В ответ на запрос вернется список платежей с учетом переданных параметров. В списке будет информация о платежах, созданных за последние 3 года. Список будет отсортирован по времени создания платежей в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
\YooKassa\Request\Payments\PaymentsRequestInterface OR array OR null filter
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\Exception

Returns: \YooKassa\Request\Payments\PaymentsResponse -

Examples:

Получить список платежей магазина с фильтрацией:

$cursor = null;
$params = array(
    'limit' => 30,
    'status' => \YooKassa\Model\PaymentStatus::CANCELED,
    'payment_method' => \YooKassa\Model\PaymentMethodType::BANK_CARD,
    'created_at_gte' => '2021-01-01T00:00:00.000Z',
    'created_at_lt' => '2021-03-30T23:59:59.999Z',
);
try {
    do {
        $params['cursor'] = $cursor;
        $payments = $client->getPayments($params);
        foreach ($payments->getItems() as $payment) {
            echo $payment->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                 $payment->getStatus() . ' - ' .
                 $payment->getId() . "\n";
        }
    } while ($cursor = $payments->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getReceiptInfo() : \YooKassa\Request\Receipts\ReceiptResponseInterface

public getReceiptInfo(string  receiptId) : \YooKassa\Request\Receipts\ReceiptResponseInterface

Summary

Получить информацию о чеке

Description

Запрос позволяет получить информацию о текущем состоянии чека по его уникальному идентификатору. Выдает объект чека {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string receiptId
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException

Returns: \YooKassa\Request\Receipts\ReceiptResponseInterface -

Examples:

Получить информацию о чеке:

try {
    $response = $client->getReceiptInfo('ra-27ed1660-0001-0050-7a5e-10f80e0f0f29');
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getReceipts() : \YooKassa\Request\Receipts\ReceiptsResponse

public getReceipts(\YooKassa\Model\PaymentInterface|\YooKassa\Model\RefundInterface|array|null  filter = null) : \YooKassa\Request\Receipts\ReceiptsResponse

Summary

Получить список чеков магазина

Description

Запрос позволяет получить список чеков, отфильтрованный по заданным критериям. Можно запросить чеки по конкретному платежу, чеки по конкретному возврату или все чеки магазина. В ответ на запрос вернется список чеков с учетом переданных параметров. В списке будет информация о чеках, созданных за последние 3 года. Список будет отсортирован по времени создания чеков в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
\YooKassa\Model\PaymentInterface OR \YooKassa\Model\RefundInterface OR array OR null filter
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\Exception

Returns: \YooKassa\Request\Receipts\ReceiptsResponse -

Examples:

Получить список чеков магазина с фильтрацией:

$cursor = null;
$params = array(
    'limit' => 30,
    'status' => \YooKassa\Model\ReceiptRegistrationStatus::SUCCEEDED,
    'payment_id' => '1da5c87d-0984-50e8-a7f3-8de646dd9ec9',
    'created_at_gte' => '2021-01-01T00:00:00.000Z',
    'created_at_lt' => '2021-03-30T23:59:59.999Z',
);
try {
    do {
        $params['cursor'] = $cursor;
        $receipts = $client->getReceipts($params);
        foreach ($receipts->getItems() as $receipt) {
            echo $receipt->getStatus() . ' - ' . $receipt->getId() . "\n";
        }
    } while ($cursor = $receipts->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getRefundInfo() : \YooKassa\Request\Refunds\RefundResponse

public getRefundInfo( refundId) : \YooKassa\Request\Refunds\RefundResponse

Summary

Получить информацию о возврате

Description

Запрос позволяет получить информацию о текущем состоянии возврата по его уникальному идентификатору. В ответ на запрос придет объект возврата {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
refundId
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\Exception

Returns: \YooKassa\Request\Refunds\RefundResponse -

Examples:

Получить информацию о возврате:

try {
    $response = $client->getRefundInfo('216749f7-0016-50be-b000-078d43a63ae4');
    echo $response->getStatus();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getRefunds() : \YooKassa\Request\Refunds\RefundsResponse

public getRefunds(\YooKassa\Request\Refunds\RefundsRequestInterface|array|null  filter = null) : \YooKassa\Request\Refunds\RefundsResponse

Summary

Получить список возвратов платежей

Description

Запрос позволяет получить список возвратов, отфильтрованный по заданным критериям. В ответ на запрос вернется список возвратов с учетом переданных параметров. В списке будет информация о возвратах, созданных за последние 3 года. Список будет отсортирован по времени создания возвратов в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
\YooKassa\Request\Refunds\RefundsRequestInterface OR array OR null filter
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\Exception

Returns: \YooKassa\Request\Refunds\RefundsResponse -

Examples:

Получить список возвратов платежей магазина с фильтрацией:

$cursor = null;
$params = array(
    'limit' => 30,
    'status' => \YooKassa\Model\RefundStatus::SUCCEEDED,
    'payment_id' => '1da5c87d-0984-50e8-a7f3-8de646dd9ec9',
    'created_at_gte' => '2021-01-01T00:00:00.000Z',
    'created_at_lt' => '2021-03-30T23:59:59.999Z',
);
try {
    do {
        $params['cursor'] = $cursor;
        $refunds = $client->getRefunds($params);
        foreach ($refunds->getItems() as $refund) {
            echo $refund->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                 $refund->getStatus() . ' - ' .
                 $refund->getId() . "\n";
        }
    } while ($cursor = $refunds->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getWebhooks() : \YooKassa\Request\Webhook\WebhookListResponse|null

public getWebhooks() : \YooKassa\Request\Webhook\WebhookListResponse|null

Summary

Список созданных Webhook

Description

Запрос позволяет узнать, какие webhook есть для переданного OAuth-токена.

Details:

Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException

Returns: \YooKassa\Request\Webhook\WebhookListResponse|null -

Examples:

Список созданных Webhook:

// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = array(
        \YooKassa\Model\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\NotificationEventType::PAYMENT_CANCELED
    );
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }
            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(array('event' => $event, 'url' => $webHookUrl));
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public me() : array|null

public me() : array|null

Summary

Информация о магазине

Description

Запрос позволяет получить информацию о магазине для переданного OAuth-токена.

Details:

Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\YooKassa\Common\Exceptions\ExtensionNotFoundException

Returns: array|null - Массив с информацией о магазине

Examples:

Информация о магазине:

try {
    $response = $client->me();
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public removeWebhook() : \YooKassa\Model\Webhook\Webhook|null

public removeWebhook( webhookId, null  idempotencyKey = null) : \YooKassa\Model\Webhook\Webhook|null

Summary

Удаление Webhook

Description

Запрос позволяет отписаться от уведомлений о событии для переданного OAuth-токена. Чтобы удалить webhook, вам нужно передать в запросе его идентификатор.

Details:

Parameters:
Type Name Description
webhookId
null idempotencyKey
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\Exception

Returns: \YooKassa\Model\Webhook\Webhook|null -

Examples:

Удаление Webhook:

// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = array(
        \YooKassa\Model\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\NotificationEventType::PAYMENT_CANCELED
    );
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }
            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(array('event' => $event, 'url' => $webHookUrl));
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public setApiClient() : $this

public setApiClient(\YooKassa\Client\ApiClientInterface  apiClient) : $this

Summary

Устанавливает CURL клиента для работы с API

Details:

Parameters:
Type Name Description
\YooKassa\Client\ApiClientInterface apiClient

Returns: $this -

public setAuth() : $this

public setAuth(string  login, string  password) : $this

Summary

Устанавливает авторизацию по логин/паролю

Details:

Parameters:
Type Name Description
string login
string password

Returns: $this -

Examples:

Пример авторизации:

$client->setAuth('xxxxxx', 'test_XXXXXXX');

public setAuthToken() : $this

public setAuthToken(string  token) : $this

Summary

Устанавливает авторизацию по Oauth-токену

Details:

Parameters:
Type Name Description
string token

Returns: $this -

Examples:

Пример авторизации:

$client->setAuthToken('token_XXXXXXX');

public setConfig() : mixed

public setConfig(array  config) : mixed

Summary

Устанавливает настройки клиента

Details:

Parameters:
Type Name Description
array config

Returns: mixed -

public setLogger() : mixed

public setLogger(null|callable|object|\Psr\Log\LoggerInterface  value) : mixed

Summary

Устанавливает логгер приложения

Details:

Parameters:
Type Name Description
null OR callable OR object OR \Psr\Log\LoggerInterface value Инстанс логгера

Returns: mixed -

public setMaxRequestAttempts() : $this

public setMaxRequestAttempts(int  attempts) : $this

Summary

Установка значения количества попыток повторных запросов при статусе 202

Details:

Parameters:
Type Name Description
int attempts

Returns: $this -

public setRetryTimeout() : $this

public setRetryTimeout(int  timeout) : $this

Summary

Установка значения задержки между повторными запросами

Details:

Parameters:
Type Name Description
int timeout

Returns: $this -

protected decodeData() : array

protected decodeData(\YooKassa\Common\ResponseObject  response) : array

Summary

Декодирует JSON строку в массив данных

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response

Returns: array -

protected delay() : mixed

protected delay(\YooKassa\Common\ResponseObject  response) : mixed

Summary

Задержка между повторными запросами

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response

Returns: mixed -

protected encodeData() : string

protected encodeData(array  serializedData) : string

Summary

Кодирует массив данных в JSON строку

Details:

Parameters:
Type Name Description
array serializedData
Throws:
Type Description
\Exception

Returns: string -

protected execute() : mixed|\YooKassa\Common\ResponseObject

protected execute(string  path, string  method, array  queryParams, null  httpBody = null, array  headers = array()) : mixed|\YooKassa\Common\ResponseObject

Summary

Выполнение запроса и обработка 202 статуса

Details:

Parameters:
Type Name Description
string path
string method
array queryParams
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

protected handleError(\YooKassa\Common\ResponseObject  response) : mixed

Summary

Выбрасывает исключение по коду ошибки

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException

Returns: mixed -


Top Namespaces


Reports


This document was automatically generated from source code comments on 2021-04-21 using phpDocumentor

© 2021 YooMoney