autoft-qris
Version:
Package untuk generate QRIS dan cek payment status secara realtime dengan API OrderKuota
112 lines (84 loc) • 4.01 kB
Markdown
# qris-payment
Node.js package untuk generate QRIS, cek status pembayaran, dan otomatis generate PDF receipt menggunakan API OrderKuota.
[](https://badge.fury.io/js/qris-payment)
[](https://www.npmjs.com/package/qris-payment)
[](https://opensource.org/licenses/MIT)
## Fitur
- Generate QRIS dengan nominal tertentu
- Tambah logo di tengah QR
- Cek status pembayaran (realtime polling) menggunakan API OrderKuota
- Generate PDF bukti transaksi otomatis saat pembayaran sukses
## Contoh Output Receipt
<img src="https://raw.githubusercontent.com/AutoFTbot/Qris-OrderKuota/refs/heads/main/img/buktitrx.jpg" width="250" alt="Contoh Receipt QRIS" />
## Instalasi
```bash
npm install autoft-qris
```
## Penggunaan Singkat
```javascript
const QRISPayment = require('autoft-qris');
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();
```
## Konfigurasi API
Package ini menggunakan API OrderKuota untuk cek status pembayaran. Pastikan Anda memiliki:
- `auth_username`: Username autentikasi
- `auth_token`: Token autentikasi
**Untuk mendapatkan kredensial API, hubungi [@AutoFtBot69](https://t.me/AutoFtBot69)**
## FAQ
**Q: Apakah receipt bisa custom logo dan nama toko?**
A: Bisa, cukup atur `logoPath` dan `storeName` di config.
**Q: Apakah receipt otomatis dibuat saat pembayaran sukses?**
A: Ya, receipt PDF otomatis dibuat dan path-nya bisa diambil dari `paymentResult.receipt.filePath`.
**Q: Apakah bisa polling pembayaran lebih cepat/lebih lama?**
A: Bisa, atur parameter `interval` dan `maxAttempts` pada fungsi polling.
**Q: Bagaimana cara mendapatkan kredensial API OrderKuota?**
A: Hubungi [@AutoFtBot69](https://t.me/AutoFtBot69) untuk mendapatkan username dan token autentikasi.
## Kontribusi
Pull request sangat diterima!
Buka issue untuk diskusi fitur/bug sebelum submit PR.
## Support
Jika ada pertanyaan, silakan buka [issue di GitHub](https://github.com/AutoFTbot/Qris-OrderKuota/issues)
## License
MIT