quickpos 1.0.911 → 1.0.912

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/PROVIDERS-DETAILS.md +1544 -0
  2. package/examples/example-2checkout.js +78 -0
  3. package/examples/example-bitpay.js +83 -0
  4. package/examples/example-cardcom.js +80 -0
  5. package/examples/example-cashfree.js +109 -0
  6. package/examples/example-checkout.js +85 -0
  7. package/examples/example-coingate.js +101 -0
  8. package/examples/example-coinpayments.js +89 -0
  9. package/examples/example-doku.js +27 -0
  10. package/examples/example-epay.js +64 -0
  11. package/examples/example-epoint.js +91 -0
  12. package/examples/example-freekassa.js +26 -0
  13. package/{example-heleket.js → examples/example-heleket.js} +3 -3
  14. package/examples/example-konnect.js +227 -0
  15. package/examples/example-midtrans.js +80 -0
  16. package/examples/example-noonpayments.js +297 -0
  17. package/examples/example-nowpayments.js +289 -0
  18. package/examples/example-omise.js +27 -0
  19. package/examples/example-paycom.js +82 -0
  20. package/{example-paydisini.js → examples/example-paydisini.js} +1 -1
  21. package/examples/example-payid19.js +87 -0
  22. package/examples/example-paykun.js +29 -0
  23. package/examples/example-payme.js +202 -0
  24. package/examples/example-paymentwall.js +201 -0
  25. package/examples/example-paynet.js +104 -0
  26. package/examples/example-paynettr.js +18 -0
  27. package/examples/example-payoneer.js +74 -0
  28. package/examples/example-payop.js +351 -0
  29. package/examples/example-paypal.js +200 -0
  30. package/examples/example-payriff.js +89 -0
  31. package/examples/example-paysend.js +81 -0
  32. package/examples/example-payspace.js +103 -0
  33. package/examples/example-payssion.js +27 -0
  34. package/examples/example-paytabs.js +28 -0
  35. package/examples/example-paytm.js +78 -0
  36. package/examples/example-payuindia.js +108 -0
  37. package/examples/example-payulatam.js +75 -0
  38. package/examples/example-phonepe.js +27 -0
  39. package/examples/example-picpay.js +27 -0
  40. package/examples/example-plisio.js +84 -0
  41. package/examples/example-portwallet.js +90 -0
  42. package/examples/example-primepayments.js +250 -0
  43. package/examples/example-razorpay.js +30 -0
  44. package/examples/example-senangpay.js +28 -0
  45. package/examples/example-shurjopay.js +94 -0
  46. package/examples/example-toyyibpay.js +80 -0
  47. package/examples/example-tripay.js +89 -0
  48. package/examples/example-unitpay.js +26 -0
  49. package/examples/example-urway.js +28 -0
  50. package/examples/example-volet.js +80 -0
  51. package/examples/example-xendit.js +28 -0
  52. package/examples/example-yallapay.js +253 -0
  53. package/examples/example-yookassa.js +27 -0
  54. package/examples/example-youcanpay.js +28 -0
  55. package/examples/example-zarinpal.js +98 -0
  56. package/{example.js → examples/example.js} +1 -1
  57. package/lib/2checkout.js +165 -0
  58. package/lib/amazonpay.js +161 -0
  59. package/lib/bitpay.js +122 -0
  60. package/lib/cardcom.js +193 -0
  61. package/lib/cashfree.js +184 -0
  62. package/lib/checkout.js +248 -0
  63. package/lib/coinbase.js +150 -0
  64. package/lib/coingate.js +137 -0
  65. package/lib/coinpayments.js +245 -0
  66. package/lib/doku.js +173 -0
  67. package/lib/epay.js +175 -0
  68. package/lib/epoint.js +162 -0
  69. package/lib/freekassa.js +128 -0
  70. package/lib/instamojo.js +158 -0
  71. package/lib/konnect.js +211 -0
  72. package/lib/midtrans.js +227 -0
  73. package/lib/noonpayments.js +650 -0
  74. package/lib/nowpayments.js +311 -0
  75. package/lib/omise.js +150 -0
  76. package/lib/paddle.js +180 -0
  77. package/lib/paycom.js +216 -0
  78. package/lib/payid19.js +211 -0
  79. package/lib/paykun.js +144 -0
  80. package/lib/payme.js +302 -0
  81. package/lib/paymentwall.js +205 -0
  82. package/lib/paynet.js +186 -0
  83. package/lib/paynettr.js +165 -0
  84. package/lib/payoneer.js +128 -0
  85. package/lib/payop.js +256 -0
  86. package/lib/paypal.js +542 -0
  87. package/lib/payriff.js +148 -0
  88. package/lib/paysend.js +189 -0
  89. package/lib/payspace.js +168 -0
  90. package/lib/payssion.js +177 -0
  91. package/lib/paytabs.js +145 -0
  92. package/lib/paytm.js +253 -0
  93. package/lib/payuindia.js +162 -0
  94. package/lib/payulatam.js +179 -0
  95. package/lib/perfectmoney.js +143 -0
  96. package/lib/phonepe.js +174 -0
  97. package/lib/picpay.js +119 -0
  98. package/lib/plisio.js +234 -0
  99. package/lib/portwallet.js +152 -0
  100. package/lib/primepayments.js +256 -0
  101. package/lib/razorpay.js +205 -0
  102. package/lib/senangpay.js +130 -0
  103. package/lib/shurjopay.js +159 -0
  104. package/lib/toyyibpay.js +151 -0
  105. package/lib/tripay.js +220 -0
  106. package/lib/unitpay.js +223 -0
  107. package/lib/urway.js +182 -0
  108. package/lib/volet.js +147 -0
  109. package/lib/xendit.js +206 -0
  110. package/lib/yallapay.js +279 -0
  111. package/lib/yookassa.js +193 -0
  112. package/lib/youcanpay.js +124 -0
  113. package/lib/zarinpal.js +157 -0
  114. package/package.json +138 -64
  115. package/readme.md +348 -105
  116. package/test.js +492 -0
  117. package/lib/vallet.js +0 -22
  118. /package/{example-anypay.js → examples/example-anypay.js} +0 -0
  119. /package/{example-bufpay.js → examples/example-bufpay.js} +0 -0
  120. /package/{example-cryptomus.js → examples/example-cryptomus.js} +0 -0
  121. /package/{example-esnekpos.js → examples/example-esnekpos.js} +0 -0
  122. /package/{example-fedapay.js → examples/example-fedapay.js} +0 -0
  123. /package/{example-iyzico.js → examples/example-iyzico.js} +0 -0
  124. /package/{example-papara.js → examples/example-papara.js} +0 -0
  125. /package/{example-payeer.js → examples/example-payeer.js} +0 -0
  126. /package/{example-paymaya.js → examples/example-paymaya.js} +0 -0
  127. /package/{example-shopier.js → examples/example-shopier.js} +0 -0
  128. /package/{ipaymu.js → examples/ipaymu.js} +0 -0
  129. /package/{oderopay.js → examples/oderopay.js} +0 -0
@@ -0,0 +1,64 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const EpayClient = require('../lib/epay');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.json());
7
+ app.use(bodyParser.urlencoded({ extended: true }));
8
+
9
+ // ePay yapılandırması
10
+ const epayClient = new EpayClient({
11
+ merchantId: 'YOUR_MERCHANT_ID',
12
+ secretKey: 'YOUR_SECRET_KEY'
13
+ });
14
+
15
+ // Ödeme oluşturma
16
+ app.get('/create-payment', async (req, res) => {
17
+ try {
18
+ const payment = await epayClient.createPayment({
19
+ amount: 100.00,
20
+ orderId: `ORDER-${Date.now()}`,
21
+ name: 'Test Product',
22
+ description: 'Тестово плащане',
23
+ expirationTime: epayClient.getExpirationTime(24) // 24 saat
24
+ });
25
+
26
+ console.log('Payment created:', payment);
27
+
28
+ // Kullanıcıyı ödeme sayfasına yönlendir
29
+ res.redirect(payment.data.url);
30
+ } catch (error) {
31
+ console.error('Error:', error.message);
32
+ res.status(500).json({ error: error.message });
33
+ }
34
+ });
35
+
36
+ // Callback endpoint
37
+ app.post('/callback', async (req, res) => {
38
+ try {
39
+ console.log('Callback received:', req.body);
40
+
41
+ const result = await epayClient.handleCallback(req.body);
42
+
43
+ console.log('Payment result:', result);
44
+
45
+ if (result.status === 'success') {
46
+ // Ödeme başarılı
47
+ console.log('Плащането е успешно!');
48
+ console.log('Order ID:', result.orderId);
49
+ console.log('Transaction ID:', result.transactionId);
50
+ console.log('Amount:', result.amount, result.currency);
51
+ }
52
+
53
+ res.status(200).send('OK');
54
+ } catch (error) {
55
+ console.error('Callback error:', error.message);
56
+ res.status(400).send('ERROR');
57
+ }
58
+ });
59
+
60
+ const PORT = 3000;
61
+ app.listen(PORT, () => {
62
+ console.log(`Server running on http://localhost:${PORT}`);
63
+ console.log(`Create payment: http://localhost:${PORT}/create-payment`);
64
+ });
@@ -0,0 +1,91 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const EpointClient = require('../lib/epoint');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.json());
7
+ app.use(bodyParser.urlencoded({ extended: true }));
8
+
9
+ // Epoint yapılandırması
10
+ const epointClient = new EpointClient({
11
+ merchantId: 'YOUR_MERCHANT_ID',
12
+ privateKey: 'YOUR_PRIVATE_KEY'
13
+ });
14
+
15
+ // Ödeme oluşturma
16
+ app.get('/create-payment', async (req, res) => {
17
+ try {
18
+ const payment = await epointClient.createPayment({
19
+ amount: 100.00,
20
+ currency: 'AZN',
21
+ orderId: `ORDER-${Date.now()}`,
22
+ name: 'Test Product',
23
+ description: 'Test payment description',
24
+ language: 'az',
25
+ email: 'customer@example.com',
26
+ phone: '+994501234567',
27
+ callback_link: 'http://localhost:3000/callback',
28
+ successUrl: 'http://localhost:3000/success',
29
+ failUrl: 'http://localhost:3000/fail',
30
+ callbackUrl: 'http://localhost:3000/callback'
31
+ });
32
+
33
+ console.log('Payment created:', payment);
34
+
35
+ // Kullanıcıyı ödeme sayfasına yönlendir
36
+ res.redirect(payment.data.url);
37
+ } catch (error) {
38
+ console.error('Error:', error.message);
39
+ res.status(500).json({ error: error.message });
40
+ }
41
+ });
42
+
43
+ // Callback endpoint
44
+ app.post('/callback', async (req, res) => {
45
+ try {
46
+ console.log('Callback received:', req.body);
47
+
48
+ const result = await epointClient.handleCallback(req.body);
49
+
50
+ console.log('Payment result:', result);
51
+
52
+ if (result.status === 'success') {
53
+ // Ödeme başarılı
54
+ console.log('Payment successful!');
55
+ console.log('Order ID:', result.orderId);
56
+ console.log('Payment ID:', result.transactionId);
57
+ console.log('Amount:', result.amount, result.currency);
58
+ }
59
+
60
+ res.status(200).send('OK');
61
+ } catch (error) {
62
+ console.error('Callback error:', error.message);
63
+ res.status(400).send('ERROR');
64
+ }
65
+ });
66
+
67
+ // Ödeme durumu sorgulama
68
+ app.get('/payment-status/:paymentId', async (req, res) => {
69
+ try {
70
+ const status = await epointClient.getPaymentStatus(req.params.paymentId);
71
+ res.json(status);
72
+ } catch (error) {
73
+ res.status(500).json({ error: error.message });
74
+ }
75
+ });
76
+
77
+ // Başarı sayfası
78
+ app.get('/success', (req, res) => {
79
+ res.send('<h1>Ödəmə uğurla tamamlandı!</h1><p>Təşəkkürlər.</p>');
80
+ });
81
+
82
+ // Hata sayfası
83
+ app.get('/fail', (req, res) => {
84
+ res.send('<h1>Ödəmə uğursuz</h1><p>Zəhmət olmasa yenidən cəhd edin.</p>');
85
+ });
86
+
87
+ const PORT = 3000;
88
+ app.listen(PORT, () => {
89
+ console.log(`Server running on http://localhost:${PORT}`);
90
+ console.log(`Create payment: http://localhost:${PORT}/create-payment`);
91
+ });
@@ -0,0 +1,26 @@
1
+ const FreeKassaClient = require('../lib/freekassa');
2
+
3
+ const client = new FreeKassaClient({
4
+ shopId: 'YOUR_SHOP_ID',
5
+ secretKey1: 'YOUR_SECRET_KEY_1',
6
+ secretKey2: 'YOUR_SECRET_KEY_2'
7
+ });
8
+
9
+ async function example() {
10
+ try {
11
+ const payment = await client.createPayment({
12
+ amount: 1000,
13
+ orderId: 'TEST-001',
14
+ currency: 'RUB',
15
+ email: 'customer@example.com',
16
+ name: 'John Doe'
17
+ });
18
+
19
+ console.log('Payment URL:', payment.data.url);
20
+ console.log('Signature:', payment.data.signature);
21
+ } catch (error) {
22
+ console.error('Error:', error.message);
23
+ }
24
+ }
25
+
26
+ example();
@@ -6,7 +6,7 @@ const QuickPos = require('./app');
6
6
  const quickPos = new QuickPos({
7
7
  providers: {
8
8
  heleket: {
9
- merchantId: '6764fdb7-7a2c-4599--fbeac2bcd498',
9
+ merchantId: '6764fdb7-7a2c-4599--',
10
10
  apiKey: ''
11
11
  }
12
12
  }
@@ -81,7 +81,7 @@ async function testPaymentWebhookExample() {
81
81
  url_callback: "https://test.speedsmm.com/api/payment/callback/heleket",
82
82
  currency: "USDT",
83
83
  network: "tron",
84
- order_id: "aa5a7a7c-7aa3-4d9b-8dc7-ef45b6088d82",
84
+ order_id: "Sb4afa7aadbb8833c1811daf5353a7df0T1746284735962",
85
85
  status: "paid"
86
86
  });
87
87
 
@@ -115,7 +115,7 @@ async function testWalletWebhookExample() {
115
115
  url_callback: "https://your-webhook-url.com/callback",
116
116
  currency: "USDT",
117
117
  network: "tron",
118
- uuid: "e1830f1b-50fc-432e-80ec-15b58ccac867",
118
+ uuid: "645eb262-19e5-481c-85ee-28331b5f3254",
119
119
  status: "paid"
120
120
  });
121
121
 
@@ -0,0 +1,227 @@
1
+ const KonnectService = require('./lib/konnect');
2
+ const express = require('express');
3
+ const bodyParser = require('body-parser');
4
+ const app = express();
5
+
6
+ // Body parser middleware
7
+ app.use(bodyParser.json());
8
+ app.use(bodyParser.urlencoded({ extended: true }));
9
+
10
+ // Tüm istekleri loglama
11
+ app.use((req, res, next) => {
12
+ console.log(`[${new Date().toISOString()}] Gelen istek: ${req.method} ${req.url}`);
13
+ console.log('Headers:', JSON.stringify(req.headers));
14
+ if (Object.keys(req.query).length > 0) {
15
+ console.log('Query:', JSON.stringify(req.query));
16
+ }
17
+ if (req.body && Object.keys(req.body).length > 0) {
18
+ console.log('Body:', JSON.stringify(req.body));
19
+ }
20
+ next();
21
+ });
22
+
23
+ // Konnect konfigürasyonu - kendi API anahtarınızı ve cüzdan ID'nizi kullanmalısınız
24
+ const konnectConfig = {
25
+ apiKey: ':', // Konnect API anahtarınız
26
+ receiverWalletId: '', // Konnect cüzdan ID'niz
27
+ sandbox: true, // Sandbox ortamı için true, canlı ortam için false
28
+ testMode: true
29
+ };
30
+
31
+ // Konnect servisini başlat
32
+ const konnect = new KonnectService(konnectConfig);
33
+
34
+ // Ödeme oluşturma örneği
35
+ async function createPaymentExample() {
36
+ try {
37
+ console.log('Yeni ödeme isteği oluşturuluyor...');
38
+
39
+ const paymentResult = await konnect.createPayment({
40
+ amount: 10000, // 10 TND (millimes cinsinden)
41
+ token: 'TND', // Para birimi (TND, EUR, veya USD)
42
+ description: 'Premium Üyelik - 1 Ay',
43
+ type: 'immediate', // Anında ödeme
44
+ orderId: 'siparis-' + Date.now(),
45
+ webhook: 'https://test.quickpanel.net/webhook',
46
+ email: 'musteri@ornek.com',
47
+ firstName: 'İsim',
48
+ lastName: 'Soyisim',
49
+ phoneNumber: '22777777',
50
+ acceptedPaymentMethods: ["wallet", "bank_card", "e-DINAR"],
51
+ lifespan: 60, // 60 dakika ödeme süresi
52
+ checkoutForm: true, // Ödeme formunu göster
53
+ theme: 'light', // Arayüz teması
54
+ generateQr: true // QR kod oluştur
55
+ });
56
+
57
+ console.log('Ödeme bağlantısı oluşturuldu:');
58
+ console.log(JSON.stringify(paymentResult, null, 2));
59
+ console.log('\nWebhook test sunucusu başlatıldı: http://localhost:80');
60
+ console.log('Webhook URL\'inizi Konnect panelinde ayarlayabilir veya her ödeme için belirtebilirsiniz.');
61
+
62
+ return paymentResult;
63
+ } catch (error) {
64
+ console.error('Ödeme oluşturma hatası:', error.message);
65
+ return { status: 'error', message: error.message };
66
+ }
67
+ }
68
+
69
+ // Webhook endpoint
70
+ app.get('/webhook', async (req, res) => {
71
+ console.log('🔔 Konnect webhook çağrısı alındı!');
72
+
73
+ const paymentRef = req.query.payment_ref;
74
+ if (!paymentRef) {
75
+ console.error('❌ Webhook hata: payment_ref parametresi eksik');
76
+ return res.status(400).send('Missing payment_ref');
77
+ }
78
+
79
+ console.log(`📌 Ödeme Referansı: ${paymentRef}`);
80
+
81
+ try {
82
+ // Callback işleme
83
+ const result = await konnect.handleCallback({ payment_ref: paymentRef });
84
+ console.log('✅ Ödeme durumu:', result);
85
+
86
+ if (result.status === 'success') {
87
+ console.log(`✅ Başarılı Ödeme: Sipariş ${result.orderId} için ${result.amount} ${result.currency} ödeme alındı`);
88
+
89
+ // Burada başarılı ödeme işlemleri yapılabilir
90
+ // - Veritabanı güncelleme
91
+ // - Sipariş durumu değiştirme
92
+ // - Kullanıcı hesabını aktifleştirme vb.
93
+
94
+ } else {
95
+ console.log(`❌ Başarısız Ödeme: Sipariş ${result.orderId} - Sebep: ${result.reason}`);
96
+ }
97
+
98
+ // Konnect webhook success sayfasına yönlendir
99
+ res.status(200).send('OK');
100
+ } catch (error) {
101
+ console.error('⚠️ Webhook işleme hatası:', error.message);
102
+ res.status(200).send('Error: ' + error.message);
103
+ }
104
+ });
105
+
106
+ // Ödeme durumu kontrol endpoint'i
107
+ app.get('/payment-status/:paymentRef', async (req, res) => {
108
+ const paymentRef = req.params.paymentRef;
109
+
110
+ try {
111
+ const paymentDetails = await konnect.getPaymentDetails(paymentRef);
112
+ res.json(paymentDetails);
113
+ } catch (error) {
114
+ console.error(`❌ Ödeme durumu sorgulama hatası: ${error.message}`);
115
+ res.status(400).json({ error: error.message });
116
+ }
117
+ });
118
+
119
+ // Başarılı ödeme dönüş sayfası
120
+ app.get('/success', (req, res) => {
121
+ res.send(`
122
+ <html>
123
+ <head>
124
+ <title>Ödeme Başarılı</title>
125
+ <style>
126
+ body { font-family: Arial, sans-serif; text-align: center; padding: 50px; }
127
+ .success { color: green; font-size: 24px; margin-bottom: 20px; }
128
+ </style>
129
+ </head>
130
+ <body>
131
+ <div class="success">Ödemeniz başarıyla tamamlandı!</div>
132
+ <p>Teşekkür ederiz. Siparişiniz işleme alındı.</p>
133
+ <pre>${JSON.stringify(req.query, null, 2)}</pre>
134
+ </body>
135
+ </html>
136
+ `);
137
+ });
138
+
139
+ // Ana sayfa
140
+ app.get('/', (req, res) => {
141
+ res.send(`
142
+ <html>
143
+ <head>
144
+ <title>Konnect Ödeme Testi</title>
145
+ <style>
146
+ body { font-family: Arial, sans-serif; padding: 20px; max-width: 800px; margin: 0 auto; }
147
+ button { padding: 10px 15px; background: #0066ff; color: white; border: none; border-radius: 4px; cursor: pointer; }
148
+ .container { margin-top: 20px; }
149
+ pre { background: #f4f4f4; padding: 10px; border-radius: 4px; overflow: auto; }
150
+ .error { color: red; }
151
+ </style>
152
+ </head>
153
+ <body>
154
+ <h1>Konnect Ödeme Testi</h1>
155
+ <p>Konnect Sandbox API ile ödeme bağlantısı oluşturma testi.</p>
156
+ <button onclick="createPayment()">Yeni Ödeme Oluştur</button>
157
+
158
+ <div class="container" id="result">
159
+ <p>Bu test için aşağıdaki bilgileri kullanıyoruz:</p>
160
+ <pre>API Anahtarı: ${konnectConfig.apiKey.substring(0, 10)}...
161
+ Cüzdan ID: ${konnectConfig.receiverWalletId}
162
+ Ortam: ${konnectConfig.sandbox ? 'Sandbox (test)' : 'Production (canlı)'}</pre>
163
+ </div>
164
+
165
+ <script>
166
+ function createPayment() {
167
+ document.getElementById('result').innerHTML = '<p>Ödeme oluşturuluyor...</p>';
168
+
169
+ fetch('/create-payment')
170
+ .then(response => response.json())
171
+ .then(data => {
172
+ if (data.status === 'success') {
173
+ let html = \`
174
+ <h3>Ödeme Bağlantısı Oluşturuldu</h3>
175
+ <p>Ödeme ID: \${data.data.id}</p>
176
+ <p>Ödeme URL: <a href="\${data.data.url}" target="_blank">\${data.data.url}</a></p>
177
+ \`;
178
+
179
+ if (data.data.qr) {
180
+ html += \`<p>QR Kod:</p><img src="\${data.data.qr}" width="200" />\`;
181
+ }
182
+
183
+ document.getElementById('result').innerHTML = html;
184
+ } else {
185
+ document.getElementById('result').innerHTML = '<p class="error">Hata: ' + data.message + '</p>';
186
+ }
187
+ })
188
+ .catch(error => {
189
+ document.getElementById('result').innerHTML = '<p class="error">Hata: ' + error + '</p>';
190
+ });
191
+ }
192
+ </script>
193
+ </body>
194
+ </html>
195
+ `);
196
+ });
197
+
198
+ // API endpoint - yeni ödeme oluşturma
199
+ app.get('/create-payment', async (req, res) => {
200
+ try {
201
+ const result = await createPaymentExample();
202
+ res.json(result);
203
+ } catch (error) {
204
+ res.status(400).json({ status: 'error', message: error.message });
205
+ }
206
+ });
207
+
208
+ // Test sunucusunu başlat
209
+ const PORT = 80;
210
+ app.listen(PORT, () => {
211
+ console.log(`🚀 Test sunucusu başlatıldı: http://localhost:${PORT}`);
212
+ console.log(`🔔 Webhook URL: http://localhost:${PORT}/webhook`);
213
+ console.log('⚠️ Konnect Entegrasyon Ayarları:');
214
+ console.log(` - API Key: ${konnectConfig.apiKey.substring(0, 10)}...`);
215
+ console.log(` - Wallet ID: ${konnectConfig.receiverWalletId}`);
216
+ console.log(` - Ortam: ${konnectConfig.sandbox ? 'Sandbox (Test)' : 'Production (Canlı)'}`);
217
+ console.log(` - API Base URL: ${konnect.baseUrl}`);
218
+
219
+ console.log('⚠️ Gerçek ortamda, webhook URL\'inizi Konnect panelinde ayarlayın');
220
+ console.log('⚠️ Konnect entegrasyonu için:');
221
+ console.log(' 1. Konnect hesabı oluşturun:');
222
+ console.log(' - Sandbox (test): https://dashboard.sandbox.konnect.network');
223
+ console.log(' - Üretim: https://dashboard.konnect.network');
224
+ console.log(' 2. KYC/KYB doğrulamasını tamamlayın (kimlik ve kurum doğrulama)');
225
+ console.log(' 3. API anahtarınızı ve cüzdan ID\'nizi alın');
226
+ console.log(' 4. example-konnect.js dosyasındaki yapılandırmayı güncelleyin');
227
+ });
@@ -0,0 +1,80 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const QuickPos = require('./app');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.urlencoded({ extended: true }));
7
+ app.use(bodyParser.json());
8
+
9
+ const quickPos = new QuickPos({
10
+ providers: {
11
+ midtrans: {
12
+ serverKey: 'your-server-key',
13
+ clientKey: 'your-client-key',
14
+ isProduction: false // Set to true for production
15
+ }
16
+ },
17
+ });
18
+
19
+ app.use(quickPos.middleware());
20
+
21
+ // Payment form
22
+ app.get('/', (req, res) => {
23
+ res.send(`
24
+ <h1>Midtrans Payment Example</h1>
25
+ <form action="/payment/midtrans" method="post">
26
+ <input type="text" name="amount" placeholder="Amount" required>
27
+ <input type="email" name="email" placeholder="Email" required>
28
+ <input type="text" name="name" placeholder="Name" required>
29
+ <input type="text" name="phone" placeholder="Phone" required>
30
+ <input type="text" name="orderId" placeholder="Order ID" required>
31
+ <button type="submit">Pay with Midtrans</button>
32
+ </form>
33
+ `);
34
+ });
35
+
36
+ // Create payment
37
+ app.post('/payment/:provider', async (req, res) => {
38
+ const { provider } = req.params;
39
+
40
+ if (!req.quickPos[provider]) {
41
+ return res.status(400).json({ error: 'Invalid payment provider' });
42
+ }
43
+
44
+ try {
45
+ const result = await req.quickPos[provider].createPayment({
46
+ name: req.body.name,
47
+ amount: req.body.amount,
48
+ email: req.body.email,
49
+ phone: req.body.phone,
50
+ orderId: req.body.orderId,
51
+ callbackUrl: `http://localhost:3000/payment-callback/${provider}`,
52
+ itemName: 'Test Product'
53
+ });
54
+
55
+ if (result.status === 'success') {
56
+ res.json({
57
+ success: true,
58
+ redirectUrl: result.data.url,
59
+ token: result.data.token,
60
+ orderId: result.data.orderId
61
+ });
62
+ } else {
63
+ res.status(400).json(result);
64
+ }
65
+ } catch (error) {
66
+ res.status(500).json({ error: error.message });
67
+ }
68
+ });
69
+
70
+ // Payment callback
71
+ app.post('/payment-callback/:provider', quickPos.handleCallback('midtrans'), (req, res) => {
72
+ console.log('Payment result:', req.paymentResult);
73
+ res.json({ success: true, data: req.paymentResult });
74
+ });
75
+
76
+ const PORT = process.env.PORT || 3000;
77
+ app.listen(PORT, () => {
78
+ console.log(`Server is running on port ${PORT}`);
79
+ console.log(`Open http://localhost:${PORT} to test`);
80
+ });