UNPKG

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
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;