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>
104 lines (90 loc) • 2.94 kB
JavaScript
const express = require('express');
const bodyParser = require('body-parser');
const QuickPos = require('./app');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const quickPos = new QuickPos({
providers: {
iyzico: {
apiKey: 'sandbox-x',
secretKey: 'sandbox-x',
uri: 'https://sandbox-api.iyzipay.com' // Canlı ortam için: 'https://api.iyzipay.com'
}
}
});
app.use(quickPos.middleware());
// Ödeme oluşturma örneği
app.get('/', async (req, res) => {
try {
const result = await quickPos.providers['iyzico'].createPayment({
name: 'Test Product',
amount: '100.00',
currency: 'TRY',
callbackUrl: 'https://test.dalamangoldtaxi.net/iyzico-callback',
email: 'customer@example.com',
buyerName: 'John',
buyerSurname: 'Doe',
address: 'Test Address',
city: 'Istanbul',
country: 'Turkey',
zipCode: '34000'
});
if (result.status === 'success') {
// Ödeme linkini doğrudan yönlendirme veya JSON yanıtı olarak döndürebilirsiniz
console.log('Ödeme linki oluşturuldu:', result.data.url);
// Seçenek 1: Link bilgisini JSON olarak döndür
res.json({
status: 'success',
redirectUrl: result.data.url,
token: result.data.token
});
// Seçenek 2: Doğrudan ödeme sayfasına yönlendir
// res.redirect(result.data.url);
} else {
res.status(400).json(result);
}
} catch (error) {
console.error('Ödeme hatası:', error);
res.status(500).json({ error: error.message });
}
});
// Callback rotası
app.post('/iyzico-callback', quickPos.handleCallback('iyzico'), (req, res) => {
console.log('Ödeme sonucu:', req.paymentResult);
/*
Ödeme sonucu: Ödeme sonucu: {
status: 'success',
orderId: 'order_1742131444461',
amount: 100,
currency: 'TRY',
paymentId: '23770523',
paymentType: 'CREDIT_CARD',
paymentTransactionId: '2b839c1c-7fba-4580-8303-29f78c4228dd',
installment: 1
}
*/
// Başarılı ödeme sonrası yönlendirme
if (req.paymentResult && req.paymentResult.status === 'success') {
res.redirect('/payment-success');
} else {
res.redirect('/payment-failed');
}
});
// Ayrıca GET isteği ile de callback'i işleyebilmek için
app.get('/iyzico-callback', quickPos.handleCallback('iyzico'), (req, res) => {
if (req.paymentResult && req.paymentResult.status === 'success') {
res.redirect('/payment-success');
} else {
res.redirect('/payment-failed');
}
});
app.get('/payment-success', (req, res) => {
res.send('Ödeme başarıyla tamamlandı!');
});
app.get('/payment-failed', (req, res) => {
res.send('Ödeme başarısız oldu!');
});
app.listen(80, () => {
console.log('Server is running on port 80');
});