UNPKG

autoft-qris

Version:

Package untuk generate QRIS dan cek payment status secara realtime dengan API OrderKuota

47 lines (44 loc) 1.91 kB
const QRISPayment = require('./src/index.js'); const fs = require('fs'); const config = { storeName: 'Nama Toko Contoh', // Nama toko auth_username: '#', // Username OrderKuota auth_token: '#', // Token OrderKuota baseQrString: '#', // String QRIS statis logoPath: './logo-agin.png' // Opsional, path logo }; const qris = new QRISPayment(config); async function main() { try { console.log('=== TEST REALTIME QRIS PAYMENT ===\n'); const randomAmount = Math.floor(Math.random() * 99) + 1; // Random 1-99 const amount = 100 + randomAmount; // Base 100 + random amount const reference = 'REF' + Date.now(); const { qrBuffer } = await qris.generateQR(amount); fs.writeFileSync('qr.png', qrBuffer); console.log('=== TRANSACTION DETAILS ==='); console.log('Reference:', reference); console.log('Amount:', amount); console.log('QR Image:', 'qr.png'); console.log('\nSilakan scan QR code dan lakukan pembayaran'); console.log('\nMenunggu pembayaran...\n'); const startTime = Date.now(); const timeout = 5 * 60 * 1000; while (Date.now() - startTime < timeout) { const result = await qris.checkPayment(reference, amount); if (result.success && result.data.status === 'PAID') { console.log('✓ Pembayaran berhasil!'); if (result.receipt) { console.log('✓ Bukti transaksi:', result.receipt.filePath); } return; } await new Promise(resolve => setTimeout(resolve, 3000)); console.log('Menunggu pembayaran...'); } throw new Error('Timeout: Pembayaran tidak diterima dalam 5 menit'); } catch (error) { console.error('Error:', error.message); } } main();