UNPKG

quickpos

Version:

<div align="center"> <h1>💳 QuickPos 🚀</h1> <p><strong>A powerful, multi-gateway payment integration module for Node.js</strong></p> <p>Seamlessly integrate with 50+ payment providers worldwide</p>

45 lines (39 loc) • 1.28 kB
const path = require('path'); class QuickPos { constructor(config) { this.providers = {}; this.loadProviders(config.providers); } loadProviders(providerConfigs) { for (const [providerName, providerConfig] of Object.entries(providerConfigs)) { try { const ProviderClass = require(path.join(__dirname, 'lib', `${providerName}.js`)); this.providers[providerName] = new ProviderClass(providerConfig); } catch (error) { console.error(`Failed to load provider ${providerName}:`, error); } } } middleware() { return async (req, res, next) => { req.quickPos = this.providers; next(); }; } handleCallback(providerName) { return async (req, res, next) => { if (!this.providers[providerName]) { return res.status(400).json({ error: 'Invalid payment provider' }); } try { let qProviders = ["paymaya"]; const result = await this.providers[providerName].handleCallback(!qProviders.includes(providerName) ? req.body : req.query); req.paymentResult = result; next(); } catch (error) { res.status(500).json({ error: error.message }); } }; } } module.exports = QuickPos;