quickpos
Version:
QuickPos, farklı ödeme sağlayıcılarını destekleyen güçlü bir ödeme entegrasyon modülüdür. Şu anda PayTR, Shopier, Cryptomus, Payeer, Papara, Anypay, EsnekPos, İyzico, PayMaya, FedaPay, Heleket, Paydisini sağlayıcısını desteklemektedir ve gelecekte birçok
45 lines (39 loc) • 1.28 kB
JavaScript
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;