🥝 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);
💸 Отправка платежа (TypeScript)
🇬🇧: Sending a payment
import { Personal, Recipients, Detector, Currency } from "qiwi-sdk";
const qiwi = new Personal(process.env.QIWI_TOKEN);
const detector = new Detector();
type PayoutMethod = "qiwi" | "yoomoney" | "card" | "mobile";
async function getProvider(
method: PayoutMethod,
account: string
): Promise<Recipients | number> {
switch (method) {
case "qiwi":
return Recipients.QIWI;
case "yoomoney":
return Recipients.YooMoney;
case "card":
return detector.getCardProvider(account);
case "mobile":
return detector.getPhoneProvider(account);
}
}
async function sendPayment(method: PayoutMethod, account: string, amount: number) {
const provider = await getProvider(method, account);
const commission = await qiwi.getCommission(provider, account, amount);
await qiwi.pay2({
amount: amount - commission,
account,
provider,
currency: Currency.RUB,
comment: "Hello world!"
});
}
sendPayment("yoomoney", "410016348581848", 100);
🔑 Создание пары ключей для взаимодействия с 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
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);
}
ℹ️ Доп. информация
🇬🇧: Additional info
🧑⚖️ Лицензия
🇬🇧: License
MIT
🙋 Поддержка
🇬🇧: Support
Библиотека - маленькая, я отвечаю быстро. Не стесняйтесь писать Issue, даже если кажется что они глупые. Если что, можете писать в
Telegram: @AlexXanderGrib
Интересует приём и отправка 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