2.0.0 • Published 3 months ago

payok v2.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

PAYOK

NODE JS модуль, который позволит принимать оплату с помощью платёжного агрегатора payok.io

📦 Установка

  • используя npm
    npm install payok
  • используя Yarn
    yarn add payok
  • используя pnpm
    pnpm add payok
  • используя bun
    bun install payok

🛠️ Использование

import { PAYOK } from "payok";

const payok = new PAYOK({
    apiId: 1,
    apiKey: "yourApiKey",
    secretKey: "yourSecretKey",
    shop: 2000,
});
ПараметрТипОписаниеОбязательный
apiIdnumberВаш идентификатор (ID) API ключа+
apiKeystringВаш API ключ+
secretKeystringСекретный ключ, который принадлежит проекту+
shopnumberИдентификатор (ID) проекта+

💳 Создание ссылки на форму оплаты


const link = payok.getPaymentLink({
    amount: 10,
    desc: "Описание вашего товара",
    success_url: `https://github.com/kravetsone/payok`,
    email: "email@gmail.ru",
    custom: { id: 123456 },
});
console.log(link); // { payUrl: "https://payok.io/pay?...", paymentId: "98dd5-51e1-a0644"}
ПараметрТипОписаниеОбязательный
amountnumberСумма платежа+
descstringНазвание или описание вашего товара+
success_urlstringСсылка, на которую переадресует пользователя после успешной оплаты-
emailstringEmail пользователя-
methodstringСпособ оплаты-
langstringЯзык интерфейса (RU/ENG)-
custom.*anyЛюбой ваш параметр, который придёт к вам на вебхук в случае оплаты-

Создание вебхука (обработчик успешной оплаты)


🚧 Параметр sign, приходящий вместе с платежём, уже проверен библиотекой, так что с ним вам взаимодействовать не потребуется.

// Запускаем сам веб-сервер
payok.createWebhook(3000, "/amazing-secret-url-path");
// Слушаем обработанное событие пополнения
payok.events.on("payment", (payment) => {
        console.log(payment);
        /*{
            payment_id: '51387-77a3-d3724',
            shop: '2000',
            amount: '10',
            profit: '10',
            desc: 'Описание вашего товара',
            currency: 'RUB',
            currency_amount: '10.69',
            sign: 'b7453a35683171d235dfb13a16b61f41',
            email: 'email@gmail.ru',
            date: '11.06.2022 12:13:15',
            method: 'Qiwi',
            custom: { id: '123456' }
        }*/
    });
});
ПараметрТипОписаниеОбязательный
portnumberПорт на котором вы хотите раскрыть вебхук+
pathstringПуть по которому будет доступен вебхук-

💰 Получение баланса


payok.api.getBalance().then((res) => {
    console.log(res); //{ balance: "10.00", ref_balance: "0" }
});

Без параметров

👉 Получить список транзакций


payok.api.getTransactions({ offset: 1 }).then((res) => {
    console.log(res);
    /*[{
                "id": "1",
                "transaction": 10000,
                "email": "example@ex.com",
                "amount": "1065",
                "currency": "USD",
                "currency_amount": "14.26",
                "comission_percent": 5 ,
                "comission_fixed": "15",
                "amount_profit": "1000",
                "method": Visa/Mastercard,
                "payment_id": "10500",
                "description": "Описание транзакции",
                "date": "26.09.2021 20:40:07",
                "pay_date": "26.09.2021 21:00:00"
                "transaction_status": 0
                "custom_fields": null
                "webhook_status": 1
                "webhook_amount": 1
            }]*/
});
ПараметрТипОписаниеОбязательный
paymentstringИдентификатор (ID) платежа-
offsetnumberПропуск определённого числа строк-

👈 Получить список выплат


payok.api.getPayouts({ offset: 1 }).then((res) => {
    console.log(res);
    /*[{
                "id": "1",
                "payout": 10000,
                "method": "card",
                "reciever": "5000400030002000",
                "type": "main",
                "amount": "1000",
                "comission_percent": 2 ,
                "comission_fixed": "50",
                "amount_profit": 930,
                "date_create": "26.09.2021 20:40:07",
                "date_pay": "26.09.2021 20:55:01",
                "status": 0
            }]*/
});
ПараметрТипОписаниеОбязательный
payout_idstringИдентификатор (ID) выплаты-
offsetnumberПропуск определённого числа строк-

Создание выплаты


payok.api
    .createPayout({
        amount: 10,
        method: "qiwi",
        reciever: "+79851628442",
        comission_type: "balance",
    })
    .then((res) => {
        console.log(res);
        /*
            {
                "status":"success",
                "remain_balance":"229.44",
                "data": {
                    "payout_id": 100,
                    "method": "card",
                    "reciever": "5000400030002000",
                    "amount": 1000,
                    "comission_percent": 2 ,
                    "comission_fixed": "50",
                    "amount_profit": 930,
                    "date": "26.09.2021 20:40:07",
                    "payout_status_code": 0,
                    "payout_status_text": "WAIT"
                }
            }
        */
    });
ПараметрТипОписаниеОбязательный
amountnumberСумма выплаты+
methodstringСпособ выплаты+
recieverstringРеквезиты на которые придёт выплата+
comission_typestringКомиссия с баланса - balance, а если с выплаты - payment+
webhook_urlstringURL вебхука для отправки статуса выплаты-

Если нашли ошибку, то создайте ISSUES

Changelog:

2.0.0 - Избавился от Axios, qs, добавил типов для ответа и всякие разные improves (но API всё ещё плохое)

1.0.4 - Breaking Change. Поменяли систему событий. Добавили примеры и множество более скромных деяних. Подробнее

1.0.3 - Поддержка TypeScript. Рефакторинг кода. Мелкие изменения в Readme. Зависимость node-fetch заменена на axios.

1.0.2 - Исправлены проблемы с API запросами (был неверно передан Content-Type). Убраны лишние зависимости (7 => 3)

1.0.1 - Фикс множества ошибок.

1.0.0 - Релиз библиотеки. Добавлен Readme

2.0.0

3 months ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago