yoomoney-sdk
Advanced tools
Comparing version 1.1.1 to 1.1.2
@@ -262,2 +262,6 @@ import { CardType } from "./shared.types"; | ||
/** | ||
* Идентификатор получателя перевода (номер счета, номер телефона или email). | ||
*/ | ||
to: string; | ||
/** | ||
* Фиксированное значение: `p2p`. | ||
@@ -264,0 +268,0 @@ */ |
{ | ||
"name": "yoomoney-sdk", | ||
"version": "1.1.1", | ||
"version": "1.1.2", | ||
"description": "YooMoney typed SDK", | ||
@@ -9,2 +9,9 @@ "main": "dist/index.js", | ||
"type": "commonjs", | ||
"engines": { | ||
"node": ">=10" | ||
}, | ||
"directories": { | ||
"lib": "./dist", | ||
"doc": "./docs" | ||
}, | ||
"scripts": { | ||
@@ -78,6 +85,5 @@ "test": "jest", | ||
"hooks": { | ||
"pre-commit": "npm run lint && npm run prettify", | ||
"pre-push": "npm test" | ||
"pre-commit": "npm run lint && npm run prettify" | ||
} | ||
} | ||
} |
168
README.md
@@ -12,2 +12,21 @@ # YooMoney NodeJS SDK | ||
## Содержание | ||
- [YooMoney NodeJS SDK](#yoomoney-nodejs-sdk) | ||
- [Содержание](#содержание) | ||
- [Почему именно эта библиотека?](#почему-именно-эта-библиотека) | ||
- [📦 Установка](#-установка) | ||
- [NPM:](#npm) | ||
- [Yarn:](#yarn) | ||
- [✏️ Примеры](#️-примеры) | ||
- [🔎 Получение информации о владельце кошелька](#-получение-информации-о-владельце-кошелька) | ||
- [💸 Отправка перевода](#-отправка-перевода) | ||
- [Приём платежей](#приём-платежей) | ||
- [Небольшое НО](#небольшое-но) | ||
- [ℹ️ Доп. информация](#ℹ️-доп-информация) | ||
- [🧑⚖️ Лицензия](#️-лицензия) | ||
- [❤️ Контрибьютинг](#️-контрибьютинг) | ||
- [🙋 Поддержка](#-поддержка) | ||
- [Интересует приём и отправка P2P платежей по РФ на NodeJS?](#интересует-приём-и-отправка-p2p-платежей-по-рф-на-nodejs) | ||
## Почему именно эта библиотека? | ||
@@ -21,6 +40,20 @@ | ||
## Работа с API | ||
## 📦 Установка | ||
Простой пример | ||
### NPM: | ||
```shell | ||
npm i -S yoomoney-sdk | ||
``` | ||
### Yarn: | ||
```shell | ||
yarn add yoomoney-sdk | ||
``` | ||
## ✏️ Примеры | ||
### 🔎 Получение информации о владельце кошелька | ||
```typescript | ||
@@ -50,2 +83,104 @@ import { YMApi } from "yoomoney-sdk"; | ||
### 💸 Отправка перевода | ||
```typescript | ||
// Платежи куда угодно 101 | ||
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 } = 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("AC") // Просим деньги с карты | ||
.setReceiver("410016348581848") // Номер кошелька получателя (ваш) | ||
.setLabel("payment-001") // Чтобы потом вычленить в уведомлении | ||
.setComment("За ♂️Fisting♂️"); | ||
res.whiteHead(200, "OK", { | ||
"Content-Type": "text/html; charset=utf-8" | ||
}); | ||
res.end(builder.buildHtml()); | ||
}); | ||
app.get("/success", (_req, res) => { | ||
res.end("Спасибо за покупку!"); | ||
}); | ||
app.listen(port); | ||
``` | ||
### Небольшое НО | ||
@@ -58,4 +193,33 @@ | ||
## ℹ️ Доп. информация | ||
**🇬🇧: `Additional info`** | ||
### 🧑⚖️ Лицензия | ||
**🇬🇧: `License`** | ||
[**MIT**](./LICENSE) | ||
### ❤️ Контрибьютинг | ||
**🇬🇧: `Contributing`** | ||
_Что делаем?_: | ||
1. ⁉️ Не стесняемся писать [Issue](https://github.com/AlexXanderGrib/yoomoney-sdk/issues/new) | ||
2. 🛠️ Если хотите что-то поправить следуйте гайду [`CONTRIBUTING.md`](./CONTRIBUTING.md) | ||
3. 💸 Донатим 👉 https://sobe.ru/na/yoomoney_sdk | ||
4. 🌟 Ставим [звёздочки](https://github.com/AlexXanderGrib/yoomoney-sdk/stargazers), если библиотека понравилась. | ||
### 🙋 Поддержка | ||
**🇬🇧: `Support`** | ||
Библиотека - маленькая, я отвечаю быстро. Не стесняйтесь писать Issue, даже если кажется что они глупые. Если что, можете писать в | ||
**Telegram: [@AlexXanderGrib](https://t.me/AlexXanderGrib)** | ||
### Интересует приём и отправка P2P платежей по РФ на NodeJS? | ||
У нас есть точно такое-же типизированное SDK для QIWI 👉 [github.com/AlexXanderGrib/node-qiwi-sdk](https://github.com/AlexXanderGrib/node-qiwi-sdk) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
138277
1968
222