vkcoin-callback-api
Модуль для работы с методами VK Coin API
VKCOIN-CALLBACK-API
Авторизация пользователя
Для начала работы, необходимо получить Merchant Key от аккаунта здесь.
После того как мы получили платежный ключ, необходимо авторизоваться
const VKCOIN = require("vkcoin-callback-api");
const vkcoin = new VKCOIN({
id: 0,
key: ""
});
Ссылка на оплату состоит из трех частей:
-
Ваш ID (19039187)
-
Сумма перевода в тысячных долях (1000 = 1 VK Coin)
-
Payload – любое число от -2000000000 до 2000000000, вернется Вам в списке транзаций
Далее их надо объединить в такую ссылку: vk.com/coin#x190391871000 2000000000
Это и будет ссылка на оплату для пользователя (обратите внимание, что самому себе переводы запрещены). По умолчанию пользователь не может изменить сумму перевода. Если это требуется, сделайте ссылку вида
vk.com/coin#x19039187_1000_2000000000_1 — свободная сумма
vk.com/coin#x19039187_1000_2000000000 — фиксированная сумма
Получаем ссылку на оплату
vkcoin.getLink(amount, payload, isFixed);
console.log(vkcoin.getLink(100500, 123456789));
Запуск сервера
После того как мы авторизировались необходимо подписаться на входящие транзакции VK Coin.
vkcoin.startServer({
server: "132.123.238.45",
port: 3223
});
и запустить сервер для прослушивания новых платежей
vkcoin.startPolling(event => {
console.log(event);
});
Устанавливаем название магазина
vkcoin.shopName("Name");
После того как мы установили параметр названия, можно отправлять VK Coin от имени магазина.
Выполняем перевод пользователю
vkcoin.send(431035213, 5000);
Где 431035213 - ID получателя, 5000 - Количество коинов для перевода (ВНИМАНИЕ! Количество указывается в тысячных долях, то еcть 5000 = 5 VK Coin).
Для того чтобы платеж был от имени магазина, необходимо отправить третий параметр.
vkcoin.send(431035213, 5000, true);
Проверка баланса
Для проверки баланса необходимо обратиться к методу getBalance и передать массив, содержащий не более 100 ID получателей.
async function getBalance() {
console.log(await vkcoin.getBalance([431035213]));
}
getBalance();
После чего мы получим: { response: { '431035213': 10991024280 } }
Для обработки этого ответа console.log(bal.response[431035213]), в таком случае мы получим баланс пользователя 431035213 в тысячных долях 10991024280.
Получим баланс нескольких пользователей
const usersId = [431035213, 237435213, 237435783];
async function getBalance() {
const balRes = await vkcoin.getBalance(usersId);
Object.values(balRes.response).map(balance => console.log(balance / 1000));
}
Форматирование возвращаемого значения
vkcoin.format(12345678900);
Пример использования совместно с vk-io
const VKCOIN = require("vkcoin-callback-api");
const { VK, getRandomId } = require("vk-io");
const vk = new VK({ token: "token" });
const vkcoin = new VKCOIN({
id: 0,
key: ""
});
vkcoin.startServer({
server: "188.323.22.11",
port: 1111
});
vkcoin.shopName("VK Coin bot");
vkcoin.startPolling(async event => {
console.log(event);
const balance = await vkcoin.getBalance([event.fromId]);
if ((balance[event.fromId] / 1000) < 5000000) {
vkcoin.send(event.fromId, 5000000 - (balance[event.fromId] / 1000));
vk.api.messages.send({ user_id: event.fromId, message: `Мы отправили тебе ${5000000 - balance[event.fromId] / 1000}\nТеперь твой баланс 5 000 000`, random_id: getRandomId() });
} else {
vk.api.messages.send({ user_id: event.fromId, message: `Твой баланс ${vkcoin.format(balance[event.fromId] / 1000)}, т.к. твой баланс больше 5 000 000 VK Coin мы тебе ничего не отправим`, random_id: getRandomId() });
}
});
Made by ХОР ЕНОТОВ