Статья с пылу-жару так сказать!

Думаю, у многих был случай, когда Вы покупали QiWi-кошелёк, но через некоторое время случалась подобная история: при входе на кошелек нас просят сменить пароль с СМС подтверждением.​


proxy.php?image=https%3A%2F%2Ftgraph.io%2Ffile%2F81541e8cda34b0685bf58.png&hash=27ca58984effd7c922144d52f79e647c

Случайно я обнаружил одну интересную фичу: будучи авторизованным в другом кошельке, я перешёл на страницу оплаты товара через Qiwi и в предложенных вариантах оплаты, киви "подтянул" мой старый кошелёк.

Таким образом я выяснил, что данные сохраняются не в cookie, а в локальном хранилище браузера (LocalStorage). Данные в LocalStorage в отличии от cookie по умолчанию не имеют срока годности, поэтому теоретически, эти данные могут быть валидными очень долго, поэтому переводы можно будет делать даже спустя год или два.

Суть

Итак, если у нас сохранились данные авторизации от киви кошелька в LocalStorage браузера для страницы oplata.qiwi.com, тогда можно без проблем оплатить покупку;
Так же можно сделать перевод средств самому себе, через выставление счетов на оплату (тык) бесплатно и без комиссий, что я и сделал.

proxy.php?image=https%3A%2F%2Ftgraph.io%2Ffile%2Fa19b11c6b3fc9e2127a02.png&hash=830cf000de23bea49d53f0c8bfca3674

Инструкция
Как сохранить данные авторизации на странице оплаты киви из LocalStorage и потом использовать на любом браузере/устройстве, даже тогда, когда киви сбросит пароль от кошелька.
  1. Создаём с любого Qiwi кошелька счёт на оплату, например на 1 рубль.
    Прием переводов
  2. Переходим по ссылке на оплату, и авторизуемся через Qiwi кошелёк.
  3. Жмём F12, заходим в раздел "Application", далее "Local Storage", жмём на домен qiwi и копируем значения auth.refreshToken и auth.accessToken.
    Для firefox: F12 -> Хранилище ->Локальное хранилище -> домен qiwi

    proxy.php?image=https%3A%2F%2Ftgraph.io%2Ffile%2Ffe80283c473242f02d62b.png&hash=1e2c160df0ff9c142f56cb77024ae78f

    Local Storage (oplata.qiwi.com)
  4. Всё, теперь в будущем если киви сбросит пароль от кошелька, а доступа к sim-карте не будет, можно будет с любого другого киви кошелька создать счёт на оплату, после чего перейти по ссылке на оплату с любого браузера/устройства, нажать F12, перейти в консоль и вставить туда следующий код:
  5. Код:
    localStorage.clear();
    localStorage.setItem('phone', '[B]номер киви без +[/B]');
    localStorage.setItem('auth.accessToken', '[B]значение accessToken[/B]');
    localStorage.setItem('auth.refreshToken', '[B]значение refreshToken[/B]');
    localStorage.setItem('auth.method', 'PASSWORD');
    localStorage.setItem('auth.clientId', 'checkout-oauth');
    localStorage.setItem('auth.tokenType', 'qw-checkout');
  6. После этого можно закрывать консоль и обновлять страницу.
    Должен высветится баланс на вашем киви кошельке и кнопка "оплатить" будет активна.
    Изменять нужно только первые 3 параметра! phone, auth.accessToken и auth.refreshToken. Можно добавить записи вручную через браузер, но это займёт больше времени.

    proxy.php?image=https%3A%2F%2Ftgraph.io%2Ffile%2Fba04e1d87c73702da3cba.png&hash=e923952818820ffac8c296f7b5e4aadc
    Кнопка перевести доступна (несмотря на сброс пароля и API ключа)

К сожалению если данные из LocalStorage были очищены, то вывести деньги уже не получится, но всё-таки если у вас случилась подобная проблема, перейдите на оплату счёта киви, возможно, у вас так же как и у меня подтянутся старые данные киви кошелька и получится вывести деньги.

Итоги​

Лучший и правильный вариант - заранее подготовиться и сохранить данные успешной авторизации из LocalStorage домена oplata.qiwi.com и быть уверенным почти на 100%, что в будущем деньги можно будет спасти даже если киви сбросит пароль.
Таким образом Вы можете быть защищены от нежелательных "Смена пароля", главное сделать пару простых действий, которые описаны в этой статье.