Использование тестового API

последнее обновление - август 2023

Введение

Тестовый режим API даёт возможность изучить работу с API Unitpay / формой оплаты на тестовых данных без фактического проведения транзакций: - обмен данными; - формат запросов и ответов; - содержание запросов и ответов.

В тестовом режиме можно проверить как работают способ оплаты банковская карта.

Тестовый режим доступен только партнерам с активным проектом.

Платежи

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

Создать тестовый платеж можно несколькими способами: через форму оплаты (простой способ) и через API.

Секретный ключ для тестового режима:

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

Для этого: 1) Перейдите на страницу настройки профиля; 2) Справа вы увидите блок с секретными ключами. Скопируйте секретный ключ для тестового режима;

3) Используйте скопированный ключ во всех тестовых запросах для параметра secretKey (кроме формирования signature).

ВАЖНО! После перехода в "боевой" режим не забудьте поменять тестовые параметры на реальные и заменить секретный ключ для тестового режима на настоящий в API.

Форма

Ссылка на оплату формируется простым способом. При создании ссылки необходимо использовать несколько обязательных параметров:

Дополнительные параметры оплаты:

Пример создания тестовой ссылки (PHP):

<?php

$params = [
    'account' => 'test',
    'currency' => 'RUB',
    'desc' => 'test',
    'sum' => '25',
    'test' => 1,
    'login' => 'email вашего аккаунта',
    'secretKey' => 'тестовый секретный ключ'
] ;

$billingCode = 'card';
$projectPublicId = 'публичный ключ проекта';

$secretKey = 'секретный ключ проекта';
$signatureParams = ['desc' => $params['desc'], 'sum' => $params['sum'], 'account' => $params['account'], 'currency' => $params['currency']];
ksort($signatureParams);
$signatureParams[] = $secretKey;
$signature =  hash('sha256', implode('{up}', $signatureParams));
$baseUrl = 'https://unitpay.ru';

$params['signature'] = $signature;
$uri = http_build_query($params);

echo $baseUrl.'/pay/'.$projectPublicId.'/'.$billingCode.'?'.$uri.PHP_EOL;

API

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

Дополнительные параметры оплаты:

Остальные параметры следует указывать согласно документации.

Пример успешного запроса:

https://unitpay.ru/api?method=initPayment
params[paymentType]=card
params[account]=test_unitpay
params[sum]=100
params[desc]=test_unitpay
params[projectId]=123456
params[secretKey]=***********-***********-***********
params[currency]=RUB
params[login]=example@site.com
params[locale]=ru
params[test]=1

Для API в тестовом режиме следует посылать все обязательные параметры, которые можно посмотреть на основной странице используемого метода. Все параметры ответа API в тестовом режиме соответствуют ответу в "боевом" режиме, если иного не описано в документации тестового API.

Пример успешного ответа:

"result": {
        "type": "redirect",
        "paymentId": 123456789,
        "message": "Счет успешно выставлен, ожидается оплата",
        "receiptUrl": "https://unitpay.ru/pay/receipt/123456789-1dca2345e2",
        "statusUrl": "https://unitpay.ru/pay/receipt/123456789-1dca2345e2",
        "redirectUrl": "https://unitpay.ru/pay/123456-a966b/card?account=test_unitpay&sum=100.00&currency=RUB&signature=68bfa6e93a370fbeff5bf097e147c8ba69ca46df6b4e48f000e787dec451250d&desc=test_unitpay&hideOtherMethods=true&locale=ru&paymentId=123456789&hideMenu=true&test=1&login=example@site.com&secretKey=***********-***********-***********"
```

Отличие значений параметров в тестовом режиме:

Предупреждение: в тестовом режиме переданная информация не сохраняется. Поэтому информация по платежу может отличаться от переданных значений при создании платежа. Номер чека платежа и paymentId после оплаты по реквизитам также изменятся.

Тестовые реквизиты

URL, полученный при создании платежа в тестовом режиме, необходим только для тестирования платежа, 3ds-авторизации и вывода чека. Не передавайте такую ссылку пользователям!

Чтобы протестировать оплату, перейдите по сформированной ссылке. Ссылка ведёт на тестовую форму для ввода реквизитов карты. Введите реквизиты и пройдите 3ds-авторизацию для получения статуса по платежу. Деньги по реальным реквизитам списываться не будут.

Тестовые реквизиты для оплаты картой:

Дата выпуска карты и CVC код могут быть любыми.

После введения реквизитов карты будет переход на тестовую форму 3ds-авторизации. В поле Код необходимо ввести 123456 для успешного платежа.

Информация о платеже

После тестовой оплаты в течение ближайшего часа вы сможете просмотреть электронный чек и взаимодействовать с ним.

Также вы можете по API отправить запрос на уточнение информации по тестовому платежу:

https://unitpay.ru/api?
     method=method=getPayment
     params[login]=email аккаунта
     params[paymentId]=номер тестового платежа
     params[secretKey]=секретный ключ аккаунта
     params[test]=1

Возврат платежа

refundPayment Обязательные параметры метода

Тестовые paymentId для возврата платежа:

Добавьте к запросу необязательный params[sum], чтобы получить различные события возврата платежа (больше или меньше допустимой суммы возврата).

Выплаты

Создание выплаты

massPayment Обязательные параметры метода

Тестовые параметры для выплат:

При создании выплаты можно получить разные статусы. Чтобы протестировать их, используйте параметр paymentType=card и следующие transactionId:

Предупреждение: созданная выплата в тестовом режиме не сохраняется. Получение информации по совершенной тестовой выплате с помощью massPaymentStatus приведет к ошибке.

Информация о выплате

massPaymentStatus Обязательные параметры метода

В тестовом режиме получить информацию можно только по выплате из списка. Тестовые параметры можно посмотреть в таблице ниже.

Тестовые transactionId для получения информации по выплате:

Подписки

ВАЖНО: в тестовом режиме вы не сможете подтвердить подписку на проекте - на ваш обработчик subscriptionId не поступает.

В тестовом режиме предусмотрено создание ссылки на оплату с подпиской, просмотр списка активных подписок, получение информации о подписке по конкретному subscriptionId, а также закрытие подписки.

Данный функционал позволяет лишь посмотреть как выглядит запрос-ответ, без реальных операций. Для проверки реальной оплаты рекомендуем создавать подписку в боевом режиме на небольшие суммы.

Оплата по подписке

Оплата по подписке доступна только по картам. Чтобы провести тестовую оплату по подписке, добавьте к методу initPayment параметр subscriptionId с тестовым значением.

Тестовые subscriptionId:

Получение списка активных подписок

listSubscriptions Обязательные параметры метода

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

Получение информации о подписке

getSubscription Обязательные параметры метода

В тестовом режиме получить информацию о подписке можно только по subscriptionId указанных в таблице ниже.

Тестовые subscriptionId:

Закрытие подписки

closeSubscription Обязательные параметры метода

В тестовом режиме можно закрыть только подписку из таблицы ниже.

Тестовые subscriptionId подписок:

Внимание: в тестовом режиме статус закрытия подписки не сохраняется.

Last updated