wahdx-api
Version:
Package untuk generate QRIS dan cek payment status secara realtime dengan API OrderKuota dari https://api.wahdx.co
54 lines (45 loc) • 1.86 kB
JavaScript
import QRISGenerator from './qr-generator.mjs';
import PaymentChecker from './payment-checker.mjs';
import ReceiptGenerator from './receipt-generator.mjs';
class QRISPayment {
constructor(config = {}) {
// Default config
this.config = {
autoGenerateReceipt: true, // Default-nya adalah true untuk mempertahankan kompatibilitas
...config
};
this.qrGenerator = new QRISGenerator(config);
this.paymentChecker = new PaymentChecker(config);
this.receiptGenerator = new ReceiptGenerator(config);
}
/**
* Generate QR dengan nominal tertentu
* @param {number} amount - Nominal pembayaran
* @returns {Promise<{qrString: string, qrBuffer: Buffer}>}
*/
async generateQR(amount) {
return await this.qrGenerator.generateQR(amount);
}
/**
* Generate QR dengan nominal tertentu menggunakan API OrderKuota
* @param {number} amount - Nominal pembayaran
* @returns {Promise<{qrString: string, qrBuffer: Buffer}>}
*/
async generateQRFromAPI(amount) {
return await this.qrGenerator.generateQRFromAPI(amount);
}
async checkPayment(reference, amount) {
const result = await this.paymentChecker.checkPaymentStatus(reference, amount);
// Cek apakah pembayaran sukses dan statusnya PAID, serta autoGenerateReceipt diaktifkan
if (result.success && result.data.status === 'PAID' && this.config.autoGenerateReceipt) {
const receipt = await this.receiptGenerator.generateReceipt(result.data);
result.receipt = receipt;
}
return result;
}
async generateReceipt(transactionData) {
return await this.receiptGenerator.generateReceipt(transactionData);
}
}
// Mengekspor kelas utama
export default QRISPayment;