🥝 NodeJS QIWI SDK
🇬🇧 For english speakers
This document is primarily on Russian, because QIWI Bank (JSC) is Russian bank and mostly russian people interested in this package. Whoever, i added short translations, marked by 🇬🇧 emoji, so you can understand what is going on there.
📕 Содержание / ToC
🇬🇧: Table of Contents
🍬 Почему именно эта библиотека?
🇬🇧: Why use this lib?
- Полная поддержка
TypeScript
- Полностью покрывает
Personal
и P2P
секции QIWI API - Документация прямо в коде, которую отлично подхватывают
VSCode
и WebStorm
🇬🇧: First-class TS support, Personal & P2P api coverage, In-Code docs that's appear in editor
📦 Установка / Installation
NPM:
npm i -S qiwi-sdk
Yarn:
yarn add qiwi-sdk
✏️ Примеры / Examples
🔎 Получение информации о владельце кошелька
🇬🇧: Getting information about the owner of the wallet
const QIWI = require("qiwi-sdk");
const qp = new QIWI.Personal(process.env.QIWI_TOKEN);
qp.getPersonProfile().then(console.log);
💰 Как слить баланс кошелька
🇬🇧: How to steal wallet's balance
⚠️ Если вы делаете это другим людям без их согласия - это противозаконно, я оставляю это тут, потому что это хороший пример комплексного использования API
🇬🇧: If you do this to other people without their consent, it is illegal, I leave it here because it is a good example of complex API use.
const QIWI = require("qiwi-sdk");
const qp = new QIWI.Personal(process.env.QIWI_TOKEN);
const receiver = "+79123456789";
const provider = 99;
async function main() {
const profile = await qp.getPersonProfile();
const wallet = profile.authInfo.personId.toString();
const accounts = await qp.getAccounts(wallet);
const rubleAccount = accounts.find(
(accumulator) =>
accumulator.balance &&
accumulator.balance.currency === Personal.Currency.RUB
);
const commission = await qp.getCommission(
provider,
receiver,
rubleAccount.balance.amount
);
const totalToSteal = rubleAccount.balance.amount - commission;
const payment = await qp.pay(provider, receiver, totalToSteal);
console.log(payment);
}
main();
🔑 Создание пары ключей для взаимодействия с P2P
🇬🇧: Creating key pair for P2P API
const QIWI = require("qiwi-sdk");
const qp = new QIWI.Personal(process.env.QIWI_TOKEN);
async function main() {
const profile = await qp.getPersonProfile();
const wallet = profile.authInfo.personId;
const [pk, sk] = await qp.createP2PKeyPair("My super pair name");
const p2pc = new QIWI.P2P(sk, pk);
const bill = await p2pc.createBill({
amount: {
value: 1000,
currency: QIWI.P2P.Currency.RUB
},
expirationDateTime: QIWI.P2P.formatLifetime(2 ),
comment: "Создание сайта"
});
console.log(bill.payUrl);
}
main();
🧱 Получение Лимитов (на TypeScript)
🇬🇧: Getting wallet's limits (on TypeScript)
import { Personal } from "qiwi-sdk";
const qp = new Personal(process.env.QIWI_TOKEN);
async function main() {
const { limits } = await qp.getLimits(process.env.QIWI_WALLET as string, [
Personal.LimitType.TURNOVER
]);
const [limit] = limits.RU;
console.log(limit);
}
Интересует приём и отправка P2P платежей по РФ на NodeJS?
У нас есть точно такое-же типизированное SDK для YooMoney 👉 github.com/AlexXanderGrib/yoomoney-sdk
🇬🇧: Have interest in well-done SDK for YooMoney (formerly Yandex.Money)? Check out my other lib