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.87 kB
JavaScript
const QRISGenerator = require("./qr-generator.cjs");
const PaymentChecker = require("./payment-checker.cjs");
const ReceiptGenerator = require("./receipt-generator.cjs");
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
module.exports = QRISPayment;