vkcoin-callback-api
Модуль для работы с методами VK Coin api
VKCOIN-CALLBACK-API
Авторизация пользователя
Для на чала работы, необходимо получить Merchant Key от аккаунта здесь
После того как мы получили платежный ключ, необходимо авторезироваться
let VKCOIN = require(`vkcoin-callback-api`);
let vkcoin = new VKCOIN({
id: 1111111111,
key: "5rgpokeK[AQL,zZv6q6d!YJb_uiiOIIuhC![,#uzx4AoT#.reV21",
});
Ссылка на оплату состоит из трех частей:
Ваш id (19039187)
-
Сумма перевода в тысячных долях (1000)
-
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, fixed);
console.log(vkcoin.getLink(100500, 123456789));
Запуск сервера
После того как мы авторизировались необходимо подписаться на входящие транзакции VK Coin.
let port = 3223;
vkcoin.startServer({
server: "132.123.238.45",
port: port,
});
и запустить сервер для прослушивания новых платежей
vkcoin.startPolling(async (event) => {
console.log(event);
});
Устанавливаем название магазина
vkcoin.shopName("Name");
После того как мы установили параметр названия, можно отправлять VK Coin от имени магазина.
Выполняем перевод пользователю
vkcoin.send(431035213, 5000);
Где 431035213 - ID получателя, 5000 - Количество коинов для перевода (ВНИМАНИЕ! Количество указывается в тысячных долях, тоеть 5000 = 5 VK Coin)
Для того чтобы платеж был от имени магазина, необхоимо отправить третий параметр
vkcoin.send(431035213, 5000, true);
Проверка баланса
Для проверки баланса необходимо обратится к методу getBalance и передать массив содержащий не более 100 id получателей
async function get() {
let bal = await vkcoin.getBalance([431035213]);
console.log(bal);
}
get();
После чего мы получим: { response: { '431035213': 10991024280 } }
Для обработки этого ответа console.log(bal.response[431035213]) в таком случае мы поучим баланс пользователя 431035213 в тысячных долях 10991024280
Получим баланс нескольких пользователей
let users = [431035213, 237435213, 237435783];
async function get() {
let bal = await vkcoin.getBalance(users);
for (let i = 0; i < users.length; i++) {
console.log(bal.response[users[i]] / 1000);
}
}
Форматирование возвращаемого значения
vkcoin.format(12345678900);
Пример использования совместно с vk-io
let VKCOIN = require(`vkcoin-callback-api`);
const { VK } = new require("vk-io");
const vk = new VK();
let link = vk.com/coin#x${ID}_${amount}_${payload}_1
vk.setOptions({
token: "Ваш токен сообщества",
pollingGroupId: 1111,
apiMode: "parallel",
});
let vkcoin = new VKCOIN({
id: 1111111111,
key: "5rgpokeK[AQL,zZv6q6d!YJb_uiiOIIuhC![,#uzx4AoT#.reV21",
});
vkcoin.startServer({
server: "188.323.22.11",
port: 1111,
});
vkcoin.shopName("VK Coin bot");
vkcoin.startPolling(async (event) => {
console.log(event);
let 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}
Теперь твой баланс 5 000 000`
});
} else {
vk.api.messages.send({
user_id: event.fromId,
message: `Твой баланс ${vkcoin.format(balance[event.fromId] / 1000)}, так как твой баланс больше 5 000 000
мы тебе ничего не отправим`
});
}
});
Made by ХОР ЕНОТОВ