quickpos 1.0.911 → 1.0.913

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 (133) 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-shopier-card.js +67 -0
  46. package/examples/example-shurjopay.js +94 -0
  47. package/examples/example-toyyibpay.js +80 -0
  48. package/examples/example-tripay.js +89 -0
  49. package/examples/example-unitpay.js +26 -0
  50. package/examples/example-urway.js +28 -0
  51. package/examples/example-volet.js +80 -0
  52. package/examples/example-xendit.js +28 -0
  53. package/examples/example-yallapay.js +253 -0
  54. package/examples/example-yookassa.js +27 -0
  55. package/examples/example-youcanpay.js +28 -0
  56. package/examples/example-zarinpal.js +98 -0
  57. package/{example.js → examples/example.js} +1 -1
  58. package/lib/2checkout.js +165 -0
  59. package/lib/amazonpay.js +161 -0
  60. package/lib/billplz.js +79 -0
  61. package/lib/bitpay.js +122 -0
  62. package/lib/cardcom.js +193 -0
  63. package/lib/cashfree.js +184 -0
  64. package/lib/checkout.js +248 -0
  65. package/lib/coinbase.js +150 -0
  66. package/lib/coingate.js +137 -0
  67. package/lib/coinpayments.js +245 -0
  68. package/lib/doku.js +173 -0
  69. package/lib/epay.js +175 -0
  70. package/lib/epoint.js +162 -0
  71. package/lib/freekassa.js +128 -0
  72. package/lib/instamojo.js +158 -0
  73. package/lib/konnect.js +211 -0
  74. package/lib/midtrans.js +227 -0
  75. package/lib/noonpayments.js +650 -0
  76. package/lib/nowpayments.js +361 -0
  77. package/lib/omise.js +150 -0
  78. package/lib/paddle.js +180 -0
  79. package/lib/paycom.js +216 -0
  80. package/lib/payid19.js +211 -0
  81. package/lib/paykun.js +144 -0
  82. package/lib/payme.js +302 -0
  83. package/lib/paymentwall.js +205 -0
  84. package/lib/paynet.js +186 -0
  85. package/lib/paynettr.js +165 -0
  86. package/lib/payoneer.js +128 -0
  87. package/lib/payop.js +345 -0
  88. package/lib/paypal.js +596 -0
  89. package/lib/payriff.js +148 -0
  90. package/lib/paysend.js +189 -0
  91. package/lib/payspace.js +168 -0
  92. package/lib/payssion.js +177 -0
  93. package/lib/paytabs.js +145 -0
  94. package/lib/paytm.js +253 -0
  95. package/lib/payuindia.js +162 -0
  96. package/lib/payulatam.js +179 -0
  97. package/lib/perfectmoney.js +143 -0
  98. package/lib/phonepe.js +174 -0
  99. package/lib/picpay.js +119 -0
  100. package/lib/plisio.js +234 -0
  101. package/lib/portwallet.js +152 -0
  102. package/lib/primepayments.js +338 -0
  103. package/lib/razorpay.js +205 -0
  104. package/lib/senangpay.js +130 -0
  105. package/lib/shopier_card.js +188 -0
  106. package/lib/shurjopay.js +159 -0
  107. package/lib/toyyibpay.js +151 -0
  108. package/lib/tripay.js +220 -0
  109. package/lib/unitpay.js +223 -0
  110. package/lib/urway.js +182 -0
  111. package/lib/volet.js +147 -0
  112. package/lib/xendit.js +206 -0
  113. package/lib/yallapay.js +319 -0
  114. package/lib/yookassa.js +193 -0
  115. package/lib/youcanpay.js +124 -0
  116. package/lib/zarinpal.js +157 -0
  117. package/package.json +138 -64
  118. package/readme.md +348 -105
  119. package/reported.md +347 -0
  120. package/test.js +492 -0
  121. package/lib/vallet.js +0 -22
  122. /package/{example-anypay.js → examples/example-anypay.js} +0 -0
  123. /package/{example-bufpay.js → examples/example-bufpay.js} +0 -0
  124. /package/{example-cryptomus.js → examples/example-cryptomus.js} +0 -0
  125. /package/{example-esnekpos.js → examples/example-esnekpos.js} +0 -0
  126. /package/{example-fedapay.js → examples/example-fedapay.js} +0 -0
  127. /package/{example-iyzico.js → examples/example-iyzico.js} +0 -0
  128. /package/{example-papara.js → examples/example-papara.js} +0 -0
  129. /package/{example-payeer.js → examples/example-payeer.js} +0 -0
  130. /package/{example-paymaya.js → examples/example-paymaya.js} +0 -0
  131. /package/{example-shopier.js → examples/example-shopier.js} +0 -0
  132. /package/{ipaymu.js → examples/ipaymu.js} +0 -0
  133. /package/{oderopay.js → examples/oderopay.js} +0 -0
@@ -0,0 +1,108 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const PayUIndiaClient = require('../lib/payuindia');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.json());
7
+ app.use(bodyParser.urlencoded({ extended: true }));
8
+
9
+ // PayU India yapılandırması
10
+ const payuIndiaClient = new PayUIndiaClient({
11
+ merchantKey: 'YOUR_MERCHANT_KEY',
12
+ salt: 'YOUR_SALT',
13
+ sandbox: true
14
+ });
15
+
16
+ // Ödeme oluşturma
17
+ app.get('/create-payment', async (req, res) => {
18
+ try {
19
+ const payment = await payuIndiaClient.createPayment({
20
+ amount: 1000.00,
21
+ orderId: `TXN${Date.now()}`,
22
+ productInfo: 'Test Product',
23
+ firstname: 'John',
24
+ name: 'John Doe',
25
+ email: 'customer@example.com',
26
+ phone: '9999999999',
27
+ callback_link: 'http://localhost:3000/callback',
28
+ successUrl: 'http://localhost:3000/success',
29
+ failUrl: 'http://localhost:3000/fail'
30
+ });
31
+
32
+ console.log('Payment created:', payment);
33
+
34
+ // Create and submit form
35
+ const form = `
36
+ <!DOCTYPE html>
37
+ <html>
38
+ <body>
39
+ <form id="payuForm" action="${payment.data.url}" method="POST">
40
+ ${Object.keys(payment.data.params).map(key =>
41
+ `<input type="hidden" name="${key}" value="${payment.data.params[key]}">`
42
+ ).join('\n')}
43
+ </form>
44
+ <script>
45
+ document.getElementById('payuForm').submit();
46
+ </script>
47
+ </body>
48
+ </html>
49
+ `;
50
+
51
+ res.send(form);
52
+ } catch (error) {
53
+ console.error('Error:', error.message);
54
+ res.status(500).json({ error: error.message });
55
+ }
56
+ });
57
+
58
+ // Callback endpoint (Success/Failure)
59
+ app.post('/callback', async (req, res) => {
60
+ try {
61
+ console.log('Callback received:', req.body);
62
+
63
+ const result = await payuIndiaClient.handleCallback(req.body);
64
+
65
+ console.log('Payment result:', result);
66
+
67
+ if (result.status === 'success') {
68
+ // Ödeme başarılı
69
+ console.log('Payment successful!');
70
+ console.log('Order ID:', result.orderId);
71
+ console.log('Transaction ID:', result.transactionId);
72
+ console.log('Amount:', result.amount, result.currency);
73
+
74
+ res.redirect('/success');
75
+ } else {
76
+ res.redirect('/fail');
77
+ }
78
+ } catch (error) {
79
+ console.error('Callback error:', error.message);
80
+ res.redirect('/fail');
81
+ }
82
+ });
83
+
84
+ // Ödeme doğrulama
85
+ app.get('/verify/:txnid', async (req, res) => {
86
+ try {
87
+ const verification = await payuIndiaClient.verifyPayment(req.params.txnid);
88
+ res.json(verification);
89
+ } catch (error) {
90
+ res.status(500).json({ error: error.message });
91
+ }
92
+ });
93
+
94
+ // Başarı sayfası
95
+ app.get('/success', (req, res) => {
96
+ res.send('<h1>Payment Successful!</h1><p>भुगतान सफल रहा। धन्यवाद!</p>');
97
+ });
98
+
99
+ // Hata sayfası
100
+ app.get('/fail', (req, res) => {
101
+ res.send('<h1>Payment Failed</h1><p>भुगतान विफल रहा। कृपया पुनः प्रयास करें।</p>');
102
+ });
103
+
104
+ const PORT = 3000;
105
+ app.listen(PORT, () => {
106
+ console.log(`Server running on http://localhost:${PORT}`);
107
+ console.log(`Create payment: http://localhost:${PORT}/create-payment`);
108
+ });
@@ -0,0 +1,75 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const PayULatamClient = require('../lib/payulatam');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.json());
7
+ app.use(bodyParser.urlencoded({ extended: true }));
8
+
9
+ // PayU Latam yapılandırması
10
+ const payuLatamClient = new PayULatamClient({
11
+ apiKey: 'YOUR_API_KEY',
12
+ apiLogin: 'YOUR_API_LOGIN',
13
+ merchantId: 'YOUR_MERCHANT_ID',
14
+ accountId: 'YOUR_ACCOUNT_ID',
15
+ sandbox: true
16
+ });
17
+
18
+ // Ödeme oluşturma
19
+ app.get('/create-payment', async (req, res) => {
20
+ try {
21
+ const payment = await payuLatamClient.createPayment({
22
+ amount: 10000,
23
+ currency: 'COP',
24
+ orderId: `ORDER-${Date.now()}`,
25
+ name: 'Juan Perez',
26
+ description: 'Pago de prueba',
27
+ email: 'customer@example.com',
28
+ dniNumber: '123456789',
29
+ country: 'CO',
30
+ address: 'Calle 123',
31
+ city: 'Bogotá',
32
+ state: 'Bogotá D.C.',
33
+ postalCode: '110111',
34
+ paymentMethod: 'VISA',
35
+ callback_link: 'http://localhost:3000/callback',
36
+ callbackUrl: 'http://localhost:3000/callback'
37
+ });
38
+
39
+ console.log('Payment created:', payment);
40
+ res.json(payment);
41
+ } catch (error) {
42
+ console.error('Error:', error.message);
43
+ res.status(500).json({ error: error.message });
44
+ }
45
+ });
46
+
47
+ // Callback endpoint (Confirmation Page)
48
+ app.post('/callback', async (req, res) => {
49
+ try {
50
+ console.log('Callback received:', req.body);
51
+
52
+ const result = await payuLatamClient.handleCallback(req.body);
53
+
54
+ console.log('Payment result:', result);
55
+
56
+ if (result.status === 'success') {
57
+ // Ödeme başarılı
58
+ console.log('¡Pago exitoso!');
59
+ console.log('Order ID:', result.orderId);
60
+ console.log('Transaction ID:', result.transactionId);
61
+ console.log('Monto:', result.amount, result.currency);
62
+ }
63
+
64
+ res.status(200).send('OK');
65
+ } catch (error) {
66
+ console.error('Callback error:', error.message);
67
+ res.status(400).send('ERROR');
68
+ }
69
+ });
70
+
71
+ const PORT = 3000;
72
+ app.listen(PORT, () => {
73
+ console.log(`Servidor corriendo en http://localhost:${PORT}`);
74
+ console.log(`Crear pago: http://localhost:${PORT}/create-payment`);
75
+ });
@@ -0,0 +1,27 @@
1
+ const PhonePeClient = require('../lib/phonepe');
2
+
3
+ const client = new PhonePeClient({
4
+ merchantId: 'YOUR_MERCHANT_ID',
5
+ saltKey: 'YOUR_SALT_KEY',
6
+ saltIndex: 1,
7
+ sandbox: true
8
+ });
9
+
10
+ async function example() {
11
+ try {
12
+ const payment = await client.createPayment({
13
+ amount: 100,
14
+ orderId: 'TEST-001',
15
+ callback_link: 'https://yoursite.com/callback',
16
+ phone: '9999999999',
17
+ userId: 'USER123'
18
+ });
19
+
20
+ console.log('Payment URL:', payment.data.url);
21
+ console.log('Transaction ID:', payment.data.transactionId);
22
+ } catch (error) {
23
+ console.error('Error:', error.message);
24
+ }
25
+ }
26
+
27
+ example();
@@ -0,0 +1,27 @@
1
+ const PicPayClient = require('../lib/picpay');
2
+
3
+ const client = new PicPayClient({
4
+ token: 'YOUR_TOKEN',
5
+ sellerToken: 'YOUR_SELLER_TOKEN'
6
+ });
7
+
8
+ async function example() {
9
+ try {
10
+ const payment = await client.createPayment({
11
+ amount: 10.50,
12
+ orderId: 'TEST-001',
13
+ callback_link: 'https://yoursite.com/callback',
14
+ name: 'João Silva',
15
+ email: 'joao@example.com',
16
+ document: '123.456.789-10',
17
+ phone: '+5511999999999'
18
+ });
19
+
20
+ console.log('Payment URL:', payment.data.paymentUrl);
21
+ console.log('QR Code:', payment.data.qrcode);
22
+ } catch (error) {
23
+ console.error('Error:', error.message);
24
+ }
25
+ }
26
+
27
+ example();
@@ -0,0 +1,84 @@
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
+ plisio: {
12
+ apiKey: 'your-api-key'
13
+ }
14
+ },
15
+ });
16
+
17
+ app.use(quickPos.middleware());
18
+
19
+ // Payment form
20
+ app.get('/', (req, res) => {
21
+ res.send(`
22
+ <h1>Plisio Crypto Payment Example</h1>
23
+ <form action="/payment/plisio" method="post">
24
+ <input type="text" name="amount" placeholder="Amount (USD)" required>
25
+ <input type="email" name="email" placeholder="Email" required>
26
+ <input type="text" name="name" placeholder="Product Name" required>
27
+ <input type="text" name="orderId" placeholder="Order ID" required>
28
+ <select name="currency2">
29
+ <option value="BTC">Bitcoin (BTC)</option>
30
+ <option value="ETH">Ethereum (ETH)</option>
31
+ <option value="LTC">Litecoin (LTC)</option>
32
+ <option value="USDT">Tether (USDT)</option>
33
+ </select>
34
+ <button type="submit">Pay with Crypto</button>
35
+ </form>
36
+ `);
37
+ });
38
+
39
+ // Create payment
40
+ app.post('/payment/:provider', async (req, res) => {
41
+ const { provider } = req.params;
42
+
43
+ if (!req.quickPos[provider]) {
44
+ return res.status(400).json({ error: 'Invalid payment provider' });
45
+ }
46
+
47
+ try {
48
+ const result = await req.quickPos[provider].createPayment({
49
+ name: req.body.name,
50
+ amount: req.body.amount,
51
+ currency: 'USD',
52
+ email: req.body.email,
53
+ orderId: req.body.orderId,
54
+ callbackUrl: `http://localhost:3000/payment-callback/${provider}`,
55
+ orderName: req.body.name
56
+ });
57
+
58
+ if (result.status === 'success') {
59
+ res.json({
60
+ success: true,
61
+ redirectUrl: result.data.url,
62
+ txnId: result.data.txnId,
63
+ amount: result.data.amount,
64
+ currency: result.data.currency
65
+ });
66
+ } else {
67
+ res.status(400).json(result);
68
+ }
69
+ } catch (error) {
70
+ res.status(500).json({ error: error.message });
71
+ }
72
+ });
73
+
74
+ // Payment callback
75
+ app.post('/payment-callback/:provider', quickPos.handleCallback('plisio'), (req, res) => {
76
+ console.log('Payment result:', req.paymentResult);
77
+ res.json({ success: true, data: req.paymentResult });
78
+ });
79
+
80
+ const PORT = process.env.PORT || 3000;
81
+ app.listen(PORT, () => {
82
+ console.log(`Server is running on port ${PORT}`);
83
+ console.log(`Open http://localhost:${PORT} to test`);
84
+ });
@@ -0,0 +1,90 @@
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const PortWalletClient = require('../lib/portwallet');
4
+
5
+ const app = express();
6
+ app.use(bodyParser.json());
7
+ app.use(bodyParser.urlencoded({ extended: true }));
8
+
9
+ // PortWallet yapılandırması
10
+ const portwalletClient = new PortWalletClient({
11
+ apiKey: 'YOUR_API_KEY',
12
+ merchantId: 'YOUR_MERCHANT_ID',
13
+ secretKey: 'YOUR_SECRET_KEY' // Opsiyonel - signature için
14
+ });
15
+
16
+ // Ödeme oluşturma
17
+ app.get('/create-payment', async (req, res) => {
18
+ try {
19
+ const payment = await portwalletClient.createPayment({
20
+ amount: 100.00,
21
+ currency: 'USD',
22
+ orderId: `ORDER-${Date.now()}`,
23
+ name: 'Test Product',
24
+ description: 'Test payment description',
25
+ email: 'customer@example.com',
26
+ callback_link: 'http://localhost:3000/callback',
27
+ successUrl: 'http://localhost:3000/success',
28
+ failUrl: 'http://localhost:3000/fail',
29
+ callbackUrl: 'http://localhost:3000/callback'
30
+ });
31
+
32
+ console.log('Payment created:', payment);
33
+
34
+ // Kullanıcıyı ödeme sayfasına yönlendir
35
+ res.redirect(payment.data.url);
36
+ } catch (error) {
37
+ console.error('Error:', error.message);
38
+ res.status(500).json({ error: error.message });
39
+ }
40
+ });
41
+
42
+ // Callback endpoint
43
+ app.post('/callback', async (req, res) => {
44
+ try {
45
+ console.log('Callback received:', req.body);
46
+
47
+ const result = await portwalletClient.handleCallback(req.body);
48
+
49
+ console.log('Payment result:', result);
50
+
51
+ if (result.status === 'success') {
52
+ // Ödeme başarılı
53
+ console.log('Payment successful!');
54
+ console.log('Order ID:', result.orderId);
55
+ console.log('Transaction ID:', result.transactionId);
56
+ console.log('Amount:', result.amount, result.currency);
57
+ }
58
+
59
+ res.status(200).send('OK');
60
+ } catch (error) {
61
+ console.error('Callback error:', error.message);
62
+ res.status(400).send('ERROR');
63
+ }
64
+ });
65
+
66
+ // Ödeme durumu sorgulama
67
+ app.get('/payment-status/:paymentId', async (req, res) => {
68
+ try {
69
+ const status = await portwalletClient.getPaymentStatus(req.params.paymentId);
70
+ res.json(status);
71
+ } catch (error) {
72
+ res.status(500).json({ error: error.message });
73
+ }
74
+ });
75
+
76
+ // Başarı sayfası
77
+ app.get('/success', (req, res) => {
78
+ res.send('<h1>Payment Successful!</h1><p>Thank you for your payment.</p>');
79
+ });
80
+
81
+ // Hata sayfası
82
+ app.get('/fail', (req, res) => {
83
+ res.send('<h1>Payment Failed</h1><p>Your payment could not be processed.</p>');
84
+ });
85
+
86
+ const PORT = 3000;
87
+ app.listen(PORT, () => {
88
+ console.log(`Server running on http://localhost:${PORT}`);
89
+ console.log(`Create payment: http://localhost:${PORT}/create-payment`);
90
+ });
@@ -0,0 +1,250 @@
1
+ /**
2
+ * PrimePayments API Example Usage
3
+ * This file demonstrates how to use the PrimePayments library
4
+ */
5
+
6
+ // Import the PrimePayments library
7
+ const PrimePayments = require('./lib/primepayments');
8
+
9
+ // Initialize the client with your credentials
10
+ const primeClient = new PrimePayments({
11
+ projectId: '5172', // Replace with your actual project ID
12
+ secretWord1: '', // Replace with your actual secret word 1
13
+ secretWord2: '', // Replace with your actual secret word 2
14
+ payoutKey: '' // Replace with your actual payout key
15
+ });
16
+
17
+
18
+ const express = require('express');
19
+ const app = express();
20
+
21
+
22
+ app.get('/primePayments.txt', (req, res) => {
23
+ res.send('92f87dea');
24
+ });
25
+
26
+ app.listen(80)
27
+
28
+ // Example 1: Initialize a payment
29
+ async function createPayment() {
30
+ try {
31
+ console.log('Attempting to create payment...');
32
+ const result = await primeClient.initPayment({
33
+ sum: 1000,
34
+ currency: 'RUB',
35
+ innerID: 'order123',
36
+ email: 'customer@example.com',
37
+ payWay: '1', // Card payment
38
+ comment: 'Payment for services'
39
+ });
40
+
41
+ if (result.status === 'OK') {
42
+ console.log('Payment URL:', result.result);
43
+ console.log('Order ID:', result.order_id);
44
+ // Redirect user to payment page
45
+ // window.location.href = result.result;
46
+ } else {
47
+ console.error('Payment error:', result.result);
48
+ console.log('Note: If project is in MODERATION status, it cannot accept payments.');
49
+ }
50
+
51
+ return result;
52
+ } catch (error) {
53
+ console.error('API request failed:', error.message);
54
+ }
55
+ }
56
+
57
+ // Example 2: Process a payout
58
+ async function processPayout() {
59
+ try {
60
+ const result = await primeClient.initPayout({
61
+ sum: 500,
62
+ currency: 'RUB',
63
+ payWay: '1', // Card payout
64
+ email: 'recipient@example.com',
65
+ purse: '1234567890123456', // Card number
66
+ comment: 'Affiliate payout'
67
+ });
68
+
69
+ if (result.status === 'OK') {
70
+ console.log('Payout created, ID:', result.result.payout_id);
71
+ } else {
72
+ console.error('Payout error:', result.result);
73
+ }
74
+
75
+ return result;
76
+ } catch (error) {
77
+ console.error('API request failed:', error.message);
78
+ }
79
+ }
80
+
81
+ // Example 3: Check order status
82
+ async function checkOrderStatus(orderID) {
83
+ try {
84
+ const result = await primeClient.getOrderInfo(orderID);
85
+
86
+ if (result.status === 'OK') {
87
+ const orderInfo = result.result;
88
+ console.log('Order status:', getOrderStatusText(orderInfo.pay_status));
89
+ console.log('Payment amount:', orderInfo.sum, 'from', orderInfo.payed_from);
90
+ } else {
91
+ console.error('Error getting order info:', result.result);
92
+ }
93
+
94
+ return result;
95
+ } catch (error) {
96
+ console.error('API request failed:', error.message);
97
+ }
98
+ }
99
+
100
+ // Helper function to convert status code to text
101
+ function getOrderStatusText(statusCode) {
102
+ const statuses = {
103
+ '0': 'In progress',
104
+ '-2': 'Expired',
105
+ '-1': 'Failed',
106
+ '1': 'Paid',
107
+ '2': 'Refund in progress',
108
+ '3': 'Refunded'
109
+ };
110
+
111
+ return statuses[statusCode] || 'Unknown';
112
+ }
113
+
114
+ // Example 4: Get project balance
115
+ async function checkBalance() {
116
+ try {
117
+ const result = await primeClient.getProjectBalance();
118
+
119
+ if (result.status === 'OK') {
120
+ console.log('Project balance:', result.result);
121
+ } else {
122
+ console.error('Error getting balance:', result.result);
123
+ }
124
+
125
+ return result;
126
+ } catch (error) {
127
+ console.error('API request failed:', error.message);
128
+ }
129
+ }
130
+
131
+ // Example 5: Get project info and available payment methods
132
+ async function getProjectInfo() {
133
+ try {
134
+ console.log('Retrieving project information...');
135
+ const result = await primeClient.getProjectInfo();
136
+
137
+ if (result.status === 'OK') {
138
+ console.log('Project status:', result.result.status);
139
+
140
+ // Check if payWays exists before trying to access it
141
+ if (result.result.payWays && typeof result.result.payWays === 'object') {
142
+ console.log('Available payment methods:', Object.keys(result.result.payWays).join(', '));
143
+ } else {
144
+ console.log('No payment methods available yet. This is normal for projects in MODERATION status.');
145
+ }
146
+
147
+ // Display all project info
148
+ console.log('Full project information:', JSON.stringify(result.result, null, 2));
149
+ } else {
150
+ console.error('Error getting project info:', result.result);
151
+ }
152
+
153
+ return result;
154
+ } catch (error) {
155
+ console.error('API request failed:', error.message);
156
+ console.log('Full error details:', error);
157
+ }
158
+ }
159
+
160
+ // Example 6: Refund a payment
161
+ async function refundPayment(orderID) {
162
+ try {
163
+ const result = await primeClient.refund(orderID);
164
+
165
+ if (result.status === 'OK') {
166
+ console.log('Payment refunded successfully. Order ID:', result.result.order_id);
167
+ } else {
168
+ console.error('Refund error:', result.result);
169
+ }
170
+
171
+ return result;
172
+ } catch (error) {
173
+ console.error('API request failed:', error.message);
174
+ }
175
+ }
176
+
177
+ // Example of handling a payment notification
178
+ // Express.js example (uncomment to use)
179
+ /*
180
+ const express = require('express');
181
+ const bodyParser = require('body-parser');
182
+ const app = express();
183
+
184
+ app.use(bodyParser.urlencoded({ extended: true }));
185
+
186
+ app.post('/payment-notification', (req, res) => {
187
+ const isValid = primeClient.verifyPaymentNotification(req.body);
188
+
189
+ if (isValid) {
190
+ const innerID = req.body.innerID;
191
+ const orderID = req.body.orderID;
192
+ const sum = req.body.sum;
193
+
194
+ if (req.body.action === 'order_payed') {
195
+ console.log(`Payment successful for order ${innerID}. Amount: ${sum}`);
196
+ // Update order status to paid in your database
197
+ // updateOrderStatus(innerID, 'paid');
198
+ } else if (req.body.action === 'order_cancel') {
199
+ console.log(`Payment canceled for order ${innerID}`);
200
+ // Handle canceled payment
201
+ // updateOrderStatus(innerID, 'canceled');
202
+ }
203
+
204
+ res.send('OK'); // Important: must respond with "OK" or "YES"
205
+ } else {
206
+ console.error('Invalid payment notification signature');
207
+ res.status(400).send('Invalid signature');
208
+ }
209
+ });
210
+
211
+ app.listen(3000, () => {
212
+ console.log('Notification server running on port 3000');
213
+ });
214
+ */
215
+
216
+ // Execute examples
217
+ (async function runExamples() {
218
+ console.log('=== PrimePayments API Examples ===');
219
+
220
+ // Get project info first to check status
221
+ console.log('\n1. Getting project info...');
222
+ const projectInfo = await getProjectInfo();
223
+
224
+ // Check if project is active before trying to create payment
225
+ const isProjectActive = projectInfo &&
226
+ projectInfo.status === 'OK' &&
227
+ projectInfo.result &&
228
+ projectInfo.result.status === 'ACTIVE';
229
+
230
+ if (isProjectActive) {
231
+ console.log('\n2. Creating payment...');
232
+ const paymentResult = await createPayment();
233
+
234
+ // If payment was created successfully, check its status
235
+ if (paymentResult && paymentResult.status === 'OK' && paymentResult.order_id) {
236
+ console.log('\n3. Checking order status...');
237
+ await checkOrderStatus(paymentResult.order_id);
238
+ }
239
+ } else {
240
+ console.log('\n2. Skipping payment creation because project is not active.');
241
+ console.log(' Project must be in ACTIVE status to accept payments.');
242
+ console.log(' Current status:', projectInfo?.result?.status || 'Unknown');
243
+ }
244
+
245
+ // Check balance - this should work regardless of project status
246
+ console.log('\n3. Checking balance...');
247
+ await checkBalance();
248
+
249
+ console.log('\n=== End of examples ===');
250
+ })();
@@ -0,0 +1,30 @@
1
+ const RazorpayClient = require('../lib/razorpay');
2
+
3
+ const client = new RazorpayClient({
4
+ keyId: 'YOUR_KEY_ID',
5
+ keySecret: 'YOUR_KEY_SECRET'
6
+ });
7
+
8
+ async function example() {
9
+ try {
10
+ const payment = await client.createPayment({
11
+ amount: 500,
12
+ orderId: 'TEST-001',
13
+ currency: 'INR',
14
+ callback_link: 'https://yoursite.com/callback',
15
+ name: 'Amit Sharma',
16
+ email: 'amit@example.com',
17
+ phone: '9999999999',
18
+ merchantName: 'Your Business'
19
+ });
20
+
21
+ console.log('Order ID:', payment.data.orderId);
22
+ console.log('Amount:', payment.data.amount);
23
+ console.log('Key ID:', payment.data.keyId);
24
+ console.log('Use these details with Razorpay Checkout.js');
25
+ } catch (error) {
26
+ console.error('Error:', error.message);
27
+ }
28
+ }
29
+
30
+ example();