Skip to content

Latest commit

 

History

History
67 lines (52 loc) · 3.39 KB

from-bill-payments-sdk.md

File metadata and controls

67 lines (52 loc) · 3.39 KB

Миграция с @qiwi/bill-payments-node-js-sdk

Для начала, @qiwi/bill-payments-node-js-sdk это не плохая, но у неё есть существенные минусы, которые решены в данном SDK. Вот что мы решаем:

  • Типы. qiwi-sdk в отличии от @qiwi/bill-payments-node-js-sdk полностью написана на TypeScript и покрыта тестами.

  • Безопасность. qiwi-sdk постоянно проверятся на уязвимости в Snyk и Code QL. В то время как @qiwi/bill-payments-node-js-sdk на момент написания содержит уязвимость типа Timing Attack:

    return hash === signature;

    Уязвимый код до сих пор находится на GitHub

  • Поддержка. qiwi-sdk активно разрабатывается и поддерживается уже 2 года подряд. В то время, как в @qiwi/bill-payments-node-js-sdk висят Issue датированные 2020 без ответа

  • Обработка ошибок. В @qiwi/bill-payments-node-js-sdk нет реализованных ошибок API, только ошибки http-запроса. qiwi-sdk разделяет ошибки Http и ошибки API и даже заботится о том, чтобы из за использования Promise'ов не терялся Stack Trace

Ещё раз повторяю. @qiwi/bill-payments-node-js-sdk это не плохая библиотека. Она официальная, правда, кажется, что морально устаревшая.

Шаги

  1. Установите qiwi-sdk через любой удобный вам менеджер пакетов

    • Используя npm
      npm i qiwi-sdk
    • Используя Yarn
      yarn add qiwi-sdk
    • Используя pnpm
      pnpm add qiwi-sdk
  2. Замените импорты в ваших файлах.

    - const QiwiBillPaymentsAPI = require('@qiwi/bill-payments-node-js-sdk');
    + const { QiwiBillPaymentsAPI } = require('qiwi-sdk');

    Импортированный класс QiwiBillPaymentsAPI практически полностью совместим с таковым из @qiwi/bill-payments-node-js-sdk чтобы обеспечить лёгкую замену

  3. Готово, теперь ваша работа с QIWI API типизированна и безопасна

Что дальше

  1. Посмотрите код класса совместимости чтобы понять как используются текущие API.
  2. Изучите документацию библиотеки
  3. Посмотрите пример использования p2p счетов