Unitpay
ru
Search
K

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

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

Введение

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

Платежи

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

Создать тестовый платеж можно несколькими способами: через форму оплаты (простой способ) и через API.
Секретный ключ для тестового режима:
Для работы с тестовым режимом необходимо получить тестовый секретный ключ.
Для этого: 1) Перейдите на страницу настройки профиля; 2) Справа вы увидите блок с секретными ключами. Скопируйте секретный ключ для тестового режима;
3) Используйте скопированный ключ во всех тестовых запросах для параметра secretKey (кроме формирования signature).
ВАЖНО! После перехода в "боевой" режим не забудьте поменять тестовые параметры на реальные и заменить секретный ключ для тестового режима на настоящий в API.

Форма

Ссылка на оплату формируется простым способом. При создании ссылки необходимо использовать несколько обязательных параметров:
test
1
paymentType
card / qiwi
login
Ваш регистрационный email в системе UnitPay
secretKey
Ваш секретный ключ для тестового режима

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

currency
RUB (в тестовом режиме поддерживается только RUB)

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

<?php
$params = [
'account' => 'test',
'currency' => 'RUB',
'desc' => 'test',
'sum' => '25',
'projectId' => 123456,
'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

Основной запрос формируется по документации, в запросе необходимо использовать тестовые данные, приведенные ниже.
test
1
paymentType
card / qiwi
login
Ваш регистрационный email в системе UnitPay
secretKey
Ваш секретный ключ для тестового режима
Дополнительные параметры оплаты:
currency
RUB (в тестовом режиме поддерживается только RUB)
Остальные параметры следует указывать согласно документации.
Пример успешного запроса:
https://unitpay.ru/api?method=initPayment
params[paymentType]=qiwi
params[account]=test_unitpay
params[sum]=100
params[desc]=test_unitpay
params[projectId]=123456
params[secretKey]=***********-***********-***********
params[currency]=RUB
params[login][email protected]
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/qiwi?account=test_unitpay&sum=100.00&currency=RUB&signature=68bfa6e93a370fbeff5bf097e147c8ba69ca46df6b4e48f000e787dec451250d&desc=test_unitpay&hideOtherMethods=true&locale=ru&paymentId=123456789&hideMenu=true&test=1&[email protected]&secretKey=***********-***********-***********"
```
Отличие значений параметров в тестовом режиме:
redirectUrl
строка
Тестовый URL для переадресации пользователя на шлюз платежной платформы. Если платеж не требует переадресации, то данный параметр будет отсутствовать.
receiptUrl
строка
Тестовый URL для переадресации пользователя на чек платежа.
Предупреждение: в тестовом режиме переданная информация не сохраняется. Поэтому информация по платежу может отличаться от переданных значений при создании платежа. Номер чека платежа и paymentId после оплаты по реквизитам также изменятся.

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

URL, полученный при создании платежа в тестовом режиме, необходим только для тестирования платежа, 3ds-авторизации и вывода чека. Не передавайте такую ссылку пользователям!
Чтобы протестировать оплату, перейдите по сформированной ссылке. Ссылка ведёт на тестовую форму для ввода реквизитов карты или qiwi кошелька. Введите реквизиты и пройдите 3ds-авторизацию для получения статуса по платежу. Деньги по реальным реквизитам списываться не будут.
Тестовые реквизиты для оплаты картой:
Дата выпуска карты и CVC код могут быть любыми.
4111111111111111
Успешный платеж
5555555555554444
Успешный платеж
2201382000000013
Успешный платеж
4024007123874108
Недостаточно средств
5100000000000412
Ошибка 3ds-аутентификации
2201234567880123
Транзакция не разрешена банком-эмитентом
4000000000000002
Ожидание
После введения реквизитов карты будет переход на тестовую форму 3ds-авторизации. В поле Код необходимо ввести 123456 для успешного платежа.
Тестовые реквизиты для оплаты QIWI Кошельком:
79876543210
Успешный платеж
79998887654
Недостаточно средств
79998765432
Кошелек отклонен платежной системой
После введения реквизитов кошелька будет переход на тестовую форму подтверждения операции. В поле Код необходимо ввести 123456 для успешного платежа.

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

Оплата по подписке доступна только по картам. Чтобы провести тестовую оплату по подписке, добавьте к методу initPayment параметр subscriptionId с тестовым значением.
Тестовые subscriptionId:
Значение
Описание
от 1 до 5
Успешный платеж
Любой другой subscriptionId
Выдаст ошибку: Подписка не найдена

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

Информация по платежу, совершенному в тестовом режиме, хранится в течение часа.

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

refundPayment Обязательные параметры метода
Тестовые paymentId для возврата платежа:
Значение
Сумма
Частичный возврат
12358132134
5000
Поддерживает
383117770
1000
Не поддерживает
Добавьте к запросу необязательный params[sum], чтобы получить различные события возврата платежа (больше или меньше допустимой суммы возврата).

Выплаты

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

massPayment Обязательные параметры метода
Тестовые параметры для выплат:
Параметр
Значение
transactionId
Любая строка из латинских букв и цифр
purse
Любая строка из латинских букв и цифр
При создании выплаты можно получить разные статусы. Чтобы протестировать их, используйте параметр paymentType=card и следующие transactionId:
Значение
Статус
F12358132134
success
F383117770
error
Любое другое значение
not_completed
Предупреждение: созданная выплата в тестовом режиме не сохраняется. Получение информации по совершенной тестовой выплате с помощью massPaymentStatus приведет к ошибке.

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

massPaymentStatus Обязательные параметры метода
В тестовом режиме получить информацию можно только по выплате из списка. Тестовые параметры можно посмотреть в таблице ниже.
Тестовые transactionId для получения информации по выплате:
Значение
Статус
F12358132134
success
F383117770
error
Любое другое значение
Ответ с ошибкой

Подписки

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

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

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

getSubscription Обязательные параметры метода
В тестовом режиме получить информацию о подписке можно только по subscriptionId указанных в таблице ниже.
Тестовые subscriptionId:
Значение
Статус
1, 2, 5
active
3
close
4
new

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

closeSubscription Обязательные параметры метода
В тестовом режиме можно закрыть только подписку из таблицы ниже.
Тестовые subscriptionId подписок:
Значение
Статус
1, 2, 5
active
3
close
4
new
Внимание: в тестовом режиме статус закрытия подписки не сохраняется.