Использование тестового 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',
    '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]=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/qiwi?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=***********-***********-***********"
```

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

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 updated