В период с 15 по 17 февраля 2023 QIWI прекратил выпуск токена для управления кошельком через API и пары из публичного и секретного ключей для приема платежей через инвойсы. Как создавать API-токен QIWI и ключи после февраля 2023 года и что делать пользователям кошелька дальше мы расскажем в этой статье.
Обновление от 31.08.2023: В кошельке появился информационный токен, с помощью которого можно проверять баланс и историю платежей. Читайте нашу статью с примерами кода как работать с информационным токеном в QIWI.
Ранее, 26 июля 2023 QIWI полностью остановил работу платежных токенов, как шестимесячных так и десятилетних.
Почему QIWI ограничил выпуск API ключей и токена
В интерфейсах личного кабинета P2P QIWI с 15 февраля начали появляться сообщения о том, что больше нельзя выпустить публичный и секретный ключ.
Эти ключи были нужны для автоматического выставления счетов (инвойсов) и приема уведомлений на специальный webhook о статусах транзакции.
Сообщение выглядит так: "Мы остановили выпуск новых ключей. Простите за доставленные неудобства"

Например, у вас интернет-магазин и вы принимаете оплату заказов на свой кошелек. С помощью публичного ключа вы создаете счет на сумму покупки, а после оплаты проверяете статус транзакции с помощью секретного ключа на своем сервере. Если оплата прошла успешно, вы отправляете товар покупателю.
Ограничение на выпуск API-токена QIWI
Ограничение на выпуск коснулось также токена QIWI кошелька. С помощью этого токена пользователи могли узнать баланс кошелька, переводить деньги и осуществлять другие операции не заходят на сайт и в приложение.
Например, можно было написать телеграм-бота, который показывал баланс кошелька и прямо из телеграм осуществлять переводы.

Сообщение об ошибке: Мы остановили выпуск токена. Простите за доставленные неудобства.
Представители QIWI не объяснили причину такого резкого прекращения создания новых API-ключей и токена, а поддержка в специальном чате не говорит о сроках возобновления выпуска.
Как работают ранее выпущенные QIWI токены и ключи
Официального однозначного ответа от поддержки QIWI нет, но по данным опрошенных пользователей ранее выпущенные API токены и ключи для P2P-счетов работают как обычно. То есть, если вы успели выпустить токен до 15 февраля - у вас все будет работать как раньше. Напомним, что обычный токен QIWI Кошелька действует 6 месяцев с момента выпуска.
С помощью пары публичного и секретного ключа, созданных до 15 февраля вы все еще можете выставлять счета и принимать уведомления о транзакциях на своем сайте.
Как и раньше пользователям доступно создание счетов вручную через личный кабинет на https://p2p.qiwi.com. Статусы платежей по счетам можно проверить также в личном кабинете.
Как получить API-токен QIWI Кошелька и ключи для переводов
В документации API мы нашли возможность создать токен QIWI Кошелька с повышенным сроком действия на 10 лет, но только если у вас уже есть активный токен (6 месячный). Ссылка на документацию: https://developer.qiwi.com/ru/qiwi-wallet-personal-advanced/#intro
Для того чтобы выпустить такой ключ нужно сделать несколько запросов к API. Пример кода на PHP:
Замените "ваш_активный_токен" на действующий токен от QIWI Кошелька
$urlToken = "http://qiwi.com/oauth/authorize";
$header = array();
$header[] = "Content-Type: application/x-www-form-urlencoded";
$header[] = "Accept: application/json";
if ($curl = curl_init()) {
curl_setopt($curl, CURLOPT_URL, $urlToken);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POSTFIELDS, "response_type=code&client_id=api_wallet_private&client_software=api&token=ваш_активный_токен");
$newToken = curl_exec($curl);
curl_close($curl);
$newToken = json_decode($newToken);
}
$urlToken = "http://qiwi.com/oauth/token";
$header = array();
$header[] = "Content-Type: application/x-www-form-urlencoded";
$header[] = "Accept: application/json";
if ($curl = curl_init()) {
curl_setopt($curl, CURLOPT_URL, $urlToken);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POSTFIELDS, "grant_type=authorization_code&client_id=api_wallet_private&client_secret=hTFPyt&code={$newToken->code}");
$tokenType = curl_exec($curl);
curl_close($curl);
$tokenType = json_decode($tokenType);
}
echo $tokenType->access_token;
//выведет на экран 10-летний токен, который можно использовать вместо 6-месячного как раньше.
Добавить комментарий