amcoin-sdk
v1.0.0
Published
Official AmCoin Merchant API SDK
Readme
amcoin-sdk
Официальный JavaScript SDK для AmCoin Merchant API.
Установка
npm install amcoin-sdkБыстрый старт
const AmCoin = require('amcoin-sdk');
const amcoin = new AmCoin('AC_ваш_ключ');Баланс
const data = await amcoin.getBalance();
console.log(data.balance); // 15000Инвойсы
// Создать
const inv = await amcoin.invoice.create({
amount: 500,
description: 'Подписка Pro',
externalId: 'order_123',
expiresInMinutes: 60,
});
console.log(inv.invoiceId); // INV1A2B3C
console.log(inv.payLink); // t.me/AmCoinMerchantBot?start=pay_...
// Получить
const inv = await amcoin.invoice.get('INV1A2B3C');
console.log(inv.status); // pending | paid | expired | cancelled
// Список
const list = await amcoin.invoice.list({ status: 'pending', limit: 10 });
// Отменить
await amcoin.invoice.cancel('INV1A2B3C');
// Ждать оплаты (polling)
const paid = await amcoin.invoice.waitForPayment('INV1A2B3C', {
timeout: 10 * 60 * 1000, // 10 минут
interval: 3000, // проверять каждые 3 сек
});
console.log('Оплачено!', paid.paidBy);Чеки
// Создать чек на 100 AC × 10 активаций
const check = await amcoin.check.create({ amount: 100, activations: 10 });
console.log(check.checkLink); // t.me/AmCoinAppbot?start=check_...
// Получить статус
const ch = await amcoin.check.get('A1B2C3D4');
console.log(ch.remainingActivations);Переводы
await amcoin.transfer({
userId: 123456789,
amount: 100,
comment: 'Бонус за регистрацию',
});Пользователь
const user = await amcoin.getUser(123456789);
console.log(user.username, user.balance, user.isBanned);Транзакции
const txns = await amcoin.getTransactions({ type: 'deposit', limit: 20 });Вебхуки
Установить URL
await amcoin.setWebhook('https://мой-сайт.com/webhook');
await amcoin.removeWebhook(); // удалитьСлушать вебхуки локально
amcoin.listenWebhook({ port: 3000, path: '/webhook' });
amcoin.on('invoice_paid', (data) => {
console.log('Оплачен:', data.invoiceId, 'на', data.amount, 'AC');
});
amcoin.on('payment', (data) => {
console.log('Свободная оплата:', data.amount, 'AC от', data.userId);
});Обработка ошибок
const { AmCoinError } = require('amcoin-sdk');
try {
await amcoin.transfer({ userId: 123, amount: 99999 });
} catch(e) {
if (e instanceof AmCoinError) {
console.log(e.message); // Недостаточно средств
console.log(e.code); // 400
}
}Опции
const amcoin = new AmCoin('AC_ключ', {
timeout: 15000, // таймаут запроса в мс (по умолч. 10000)
});Лицензия
MIT
