tokovoucher-api
v0.0.2
Published
TypeScript wrapper for Toko Voucher API
Downloads
6
Maintainers
Readme
Toko Voucher API TypeScript Wrapper
Wrapper TypeScript yang bersih dan type-safe untuk API Toko Voucher.
Fitur
- 🔒 Type safety dengan TypeScript
- 📚 Cakupan API lengkap
- 🧰 Utilitas bawaan
- 🔐 Pembuatan signature otomatis
- 📈 Penanganan error yang baik
Instalasi
npm install tokovoucher-apiMemulai
Konfigurasi
Sebelum menggunakan API, Anda perlu mendapatkan Member Code dan Secret Key dari dashboard Toko Voucher Anda.
import { TokoVoucherApi } from 'tokovoucher-api';
const tokoVoucher = new TokoVoucherApi({
memberCode: 'MEMBER_CODE_ANDA',
secretKey: 'SECRET_KEY_ANDA',
signatureDefault: 'DEFAULT_SIGNATURE_ANDA',
});Cek Saldo
const balance = await tokoVoucher.checkBalance();
console.log(`Saldo Anda saat ini: ${balance.data.saldo}`);Pencarian Produk
// Mencari produk Free Fire
const products = await tokoVoucher.searchProducts('FF');
console.log(`Ditemukan ${products.data.length} produk`);
// Menampilkan detail produk
products.data.forEach(product => {
console.log(`${product.code}: ${product.nama_produk} - Rp ${product.price}`);
});Membuat Deposit
// Buat permintaan deposit menggunakan QRIS
const deposit = await tokoVoucher.createDeposit(100000, 'QRIS');
console.log(`Deposit dibuat: ${deposit.data.metode}`);
console.log(`Bayar ke: ${deposit.data.pay}`);
console.log(`Kadaluarsa pada: ${deposit.data.expired_at}`);Melakukan Transaksi
import { TokoVoucherApi, utils } from 'tokovoucher-api';
// Buat ID referensi unik
const refId = utils.generateRefId();
// Buat transaksi
const transaction = await tokoVoucher.createTransaction({
ref_id: refId,
produk: 'FF5', // Kode produk
tujuan: '12345678', // ID Player
server_id: '', // Kosong untuk produk tanpa server ID
});
console.log(`Status transaksi: ${transaction.status}`);
console.log(`Pesan: ${transaction.message}`);
// Jika transaksi masih pending, periksa status nanti
if (transaction.status === 'pending') {
// Implementasikan mekanisme retry yang tepat di production
setTimeout(async () => {
const status = await tokoVoucher.checkTransactionStatus(refId);
console.log(`Status terupdate: ${status.status}`);
}, 10000);
}Memeriksa Status Transaksi
const status = await tokoVoucher.checkTransactionStatus('ref-id-anda');
console.log(`Status: ${status.status}`);
console.log(`SN: ${status.sn}`);Penanganan Error
Semua metode API akan melempar error standar yang dapat ditangkap:
try {
const balance = await tokoVoucher.checkBalance();
console.log(`Saldo: ${balance.data.saldo}`);
} catch (error) {
console.error(`Error: ${error.message}`);
console.error(`Kode status: ${error.statusCode}`);
}Catatan Penting
Sesuai dengan dokumentasi Toko Voucher:
⚠️ Penting
- Semua HTTP Error harus diatur sebagai transaksi PENDING
- NETWORK TIMEOUT harus diatur sebagai transaksi PENDING
- Pastikan menunggu callback final dari Toko Voucher untuk mendapatkan status transaksi
- Atau periksa status transaksi secara berkala setiap 10 menit
- Documentation detail nya silahkan cek Docs Tokovoucher
Lisensi
MIT
