Files

7.3 KiB

Работа с кассовыми ссылками

Кассовая ссылка — ссылка для оплаты в офлайн-сценариях. Вы можете создать кассовую ссылку и распечатать платежную табличку с QR-кодом, по которому покупатель сможет оплатить заказ.

С помощью SDK вы можете создать кассовую ссылку, получить информацию о ней, активировать и деактивировать ее, а также привязать к ней торговую точку.


Запрос на создание кассовой ссылки

Создание кассовой ссылки в документации

Используйте этот запрос, чтобы создать в ЮKassa объект кассовой ссылки и активировать кассовую ссылку для последующего приема платежей по платежным табличкам.

В ответ на запрос придет объект кассовой ссылки — PosLinkInfo — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

try {
    $posLinkData = [
        'recipient' => [
            'gateway_id' => '123',
        ],
        'pos_link_data' => [
            'link' => 'https://shop.example.ru/pay/1234567890',
        ],
    ];

    $idempotenceKey = uniqid('', true);
    $response = $client->createPosLink($posLinkData, $idempotenceKey);
    if ($response->getStatus() === \YooKassa\Model\PosLink\PosLinkStatus::ACTIVE) {
        // Кассовая ссылка успешно создана
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

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

Информация о кассовой ссылке в документации

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

В ответ на запрос придет объект кассовой ссылки — PosLinkInfo — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

try {
    $posLinkId = 'pl-285d3ab7-0003-5000-9000-0e1166498fda';
    $response = $client->getPosLinkInfo($posLinkId);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

Активировать кассовую ссылку

Активация кассовой ссылки в документации

Запрос позволяет активировать ранее деактивированную кассовую ссылку, чтобы она стала доступна для приема платежей.

В ответ на запрос придет объект кассовой ссылки — PosLinkInfo — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

try {
    $posLinkId = 'pl-285d3ab7-0003-5000-9000-0e1166498fda';
    $response = $client->activatePosLink($posLinkId, uniqid('', true));
    if ($response->getStatus() === \YooKassa\Model\PosLink\PosLinkStatus::ACTIVE) {
        // Кассовая ссылка активирована
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

Деактивировать кассовую ссылку

Деактивация кассовой ссылки в документации

Запрос позволяет деактивировать кассовую ссылку, прием платежей по ней будет недоступен.

В ответ на запрос придет объект кассовой ссылки — PosLinkInfo — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

try {
    $posLinkId = 'pl-285d3ab7-0003-5000-9000-0e1166498fda';
    $response = $client->deactivatePosLink($posLinkId, uniqid('', true));
    if ($response->getStatus() === \YooKassa\Model\PosLink\PosLinkStatus::INACTIVE) {
        // Кассовая ссылка деактивирована
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

Привязать торговую точку к кассовой ссылке

Изменение торговой точки, привязанной к кассовой ссылке, в документации

Запрос позволяет привязать к кассовой ссылке другую торговую точку. В параметре recipient.gateway_id передается идентификатор торговой точки, которую вы хотите привязать.

В ответ на запрос придет объект кассовой ссылки — PosLinkInfo — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

try {
    $posLinkId = 'pl-285d3ab7-0003-5000-9000-0e1166498fda';
    $recipientData = [
        'recipient' => [
            'gateway_id' => '456',
        ],
    ];
    $response = $client->recipientPosLink($posLinkId, $recipientData, uniqid('', true));
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}