Использование тестового 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
$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;
Основной запрос формируется по документации, в запросе необходимо использовать тестовые данные, приведенные ниже.
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¤cy=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 |
Внимание: в тестовом режиме статус закрытия подписки не сохраняется.
Last modified 25d ago