Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

yoomoney-sdk

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yoomoney-sdk - npm Package Compare versions

Comparing version 1.1.4 to 1.1.5

CONTRIBUTING.md

15

package.json
{
"name": "yoomoney-sdk",
"version": "1.1.4",
"version": "1.1.5",
"description": "YooMoney typed SDK",

@@ -14,3 +14,4 @@ "main": "dist/index.js",

"lib": "./dist",
"doc": "./docs"
"doc": "./docs",
"example": "./examples"
},

@@ -25,7 +26,11 @@ "scripts": {

"lint": "eslint src/*",
"prettify": "prettier --write src/**/*"
"prettify": "prettier --write src/**/*",
"docs": "typedoc --out docs/api src/index.ts"
},
"files": [
"dist",
"docs"
"docs",
"examples",
"README.md",
"CONTRIBUTING.md"
],

@@ -78,2 +83,4 @@ "repository": {

"ts-node": "^10.0.0",
"typedoc": "^0.22.5",
"typedoc-plugin-markdown": "^3.11.3",
"typescript": "^4.3.2"

@@ -80,0 +87,0 @@ },

@@ -12,23 +12,4 @@ # YooMoney NodeJS SDK

## Содержание
## 🍬 Почему именно эта библиотека?
- [YooMoney NodeJS SDK](#yoomoney-nodejs-sdk)
- [Содержание](#содержание)
- [Почему именно эта библиотека?](#почему-именно-эта-библиотека)
- [📦 Установка](#-установка)
- [NPM:](#npm)
- [Yarn:](#yarn)
- [✏️ Примеры](#️-примеры)
- [🔎 Получение информации о владельце кошелька](#-получение-информации-о-владельце-кошелька)
- [💸 Отправка перевода](#-отправка-перевода)
- [Приём платежей](#приём-платежей)
- [Небольшое НО](#небольшое-но)
- [ℹ️ Доп. информация](#ℹ️-доп-информация)
- [🧑‍⚖️ Лицензия](#️-лицензия)
- [❤️ Контрибьютинг](#️-контрибьютинг)
- [🙋 Поддержка](#-поддержка)
- [Интересует приём и отправка P2P платежей по РФ на NodeJS?](#интересует-приём-и-отправка-p2p-платежей-по-рф-на-nodejs)
## Почему именно эта библиотека?
1. Есть поддержка TypeScript

@@ -42,3 +23,3 @@ 2. Покрывает большую часть https://yoomoney.ru/docs/wallet

### NPM:
**Используя `NPM`**

@@ -49,3 +30,3 @@ ```shell

### Yarn:
**Используя `Yarn`**

@@ -56,153 +37,23 @@ ```shell

## ✏️ Примеры
**Используя `pnpm`**
### 🔎 Получение информации о владельце кошелька
```typescript
import { YMApi } from "yoomoney-sdk";
const token = "..."; // Где-то здесь берём oauth токен кошелька
const api = new YMApi(token);
api.accountInfo().then(console.log);
```shell
pnpm add yoomoney-sdk
```
Который в консоль выведет
## 🛠️ Использование
```javascript
{
account: '41xxxxxxxxxx848',
balance: 34.18,
currency: '643',
account_type: 'personal',
identified: true,
account_status: 'identified',
balance_details: { total: 34.18, available: 34.18 }
}
```
1. [⚙️ Список методов](./docs/api/modules.md)
2. [🦄 Примеры](./examples/README.md)
3. 🧑‍⚖️ Лицензия - [**MIT**](./LICENSE)
### 💸 Отправка перевода
#### Небольшое НО
```typescript
// Платежи куда угодно 101
Если вызов метода API возвращает ошибку (то-есть есть поле `error` в ответе), то библиотека кидает ошибку `YMApiError`, которая содержит поля:
import { YMApi, ymTypes } from "yoomoney-sdk";
const api = new YMApi(process.env.YM_TOKEN);
type PayoutMethod = "qiwi" | "yoomoney" | "card" | "mobile";
function getRequest(
method: PayoutMethod,
account: string,
amount: number
): ymTypes.RequestPaymentParams {
switch (method) {
case "yoomoney":
return {
amount,
pattern_id: "p2p",
to: account
};
case "qiwi":
// Взято из доков и с https://yoomoney.ru/api/showcase/97186
return {
rapida_param1: account.slice(1),
netSum: amount.toString(),
pattern_id: "97186",
ShopID: "135960",
ShowCaseID: "44",
ShopArticleID: "434586"
};
case "mobile":
return {
pattern_id: "phone-topup",
"phone-number": account,
amount
};
case "card":
// Искал часа 2 как сделать перевод через API - ничего
throw new Error("Метод недоступен");
}
}
async function sendPayment(method: PayoutMethod, account: string, amount: number) {
// Запрашиваем платёж
const request = await api.requestPayment(getRequest(method, account, amount));
// Где-то тут можно сохранить ID платежа в ДБ и оставить на потом
// Подтверждаем платёж
const response = await api.processPayment({
money_source: "wallet",
request_id: request.request_id
});
console.log(response);
}
// Донатим на разработку этой библиотеки :)
sendPayment("yoomoney", "410016348581848", 100);
```
### Приём платежей
```javascript
// ♂️Gachi♂️ магазинчик на Express
const express = require("express");
const app = express();
const { YMPaymentFromBuilder, YMFormPaymentType } = require("yoomoney-sdk");
const port = parseInt(process.env.PORT);
app.get("/pay", (_req, res) => {
const builder = new YMPaymentFromBuilder()
.setQuickPayForm("shop")
.setAmount((300 * 74.3).toFixed(2)) // 300 баксов
.requirePhone() // Требуем с плательщика ввести телефон
.setSuccessURL(`http://localhost:${port}/success`)
.setPaymentType(YMFormPaymentType.FromCard) // Просим деньги с карты
.setReceiver("410016348581848") // Номер кошелька получателя (ваш)
.setLabel("payment-001") // Чтобы потом вычленить в уведомлении
.setComment("За ♂️Fisting♂️");
res.whiteHead(200, "OK", {
"Content-Type": "text/html; charset=utf-8"
});
res.end(builder.buildHtml(true)); // true = делаем полную страничку, а не только форму
});
app.get("/success", (_req, res) => {
res.end("Спасибо за покупку!");
});
app.listen(port);
```
### Небольшое НО
Если API возвращает ошибку (то-есть поле `error` в ответе), то библиотека кидает ошибку `YMApiError`, которая содержит поля:
- `code` - Значение поля `error` в ответе
- `response` - Ответ полностью
## ℹ️ Доп. информация
## ❤️ Контрибьютинг
**🇬🇧: `Additional info`**
### 🧑‍⚖️ Лицензия
**🇬🇧: `License`**
[**MIT**](./LICENSE)
### ❤️ Контрибьютинг
**🇬🇧: `Contributing`**
_Что делаем?_:

@@ -215,6 +66,4 @@

### 🙋 Поддержка
## 🙋 Поддержка
**🇬🇧: `Support`**
Библиотека - маленькая, я отвечаю быстро. Не стесняйтесь писать Issue, даже если кажется что они глупые. Если что, можете писать в

@@ -224,4 +73,4 @@

### Интересует приём и отправка P2P платежей по РФ на NodeJS?
## Интересует приём и отправка P2P платежей по РФ на NodeJS?
У нас есть точно такое-же типизированное SDK для QIWI 👉 [github.com/AlexXanderGrib/node-qiwi-sdk](https://github.com/AlexXanderGrib/node-qiwi-sdk)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc