krsyer-server-monitor-pro 1.0.28 → 1.0.29

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.
@@ -1 +0,0 @@
1
- function a0_0x1731(){const _0x1f83b7=['WPrzxmkvWR5eW53dRCoBBmocCcWQW6tcR0pdJmo/W7bkvmoGsCkGk2VcNmkxdCoLkLZdIva','WQyyk8oN','WR1jWQvX','W5Kby3/dLhi','WOumpCo8W6VcTmowWPhcLSo1WR3cIGOSdmoMWQhcH2pcQv8dW74TeL4','ffVcUJ8BWQzddCoGW7jX','aNNcRrhdL2FcSCoIW5VdRW','eYNcSrnHfqJdJdOa','W7SBW74HiKFcSgq7W7ldKG','CrhcNqD8','oXddQmkVW4tdQSooW7lcVCkqgCkDW6BcRXy1cmkWWQi','gcVdUvVdVG','WOOmcSkuWP9/W5VdICoB','W7GSWPtdRcHAW6GWWPXi','WRNdN8kCWOBcRSomi8o6','W7JdI8ofb8oNbWRcOq','WOpdNSkmW5xdL8kfy8kDW6JcGdTGW6WTWRxcUXTgW73dLI8gusldQmktjWRcHbr/W6C','DSkDouZcNx4LtCkkW6TCymor','qwxdLvVcPqW','w8o1pbLwWPNcKc7dSWCotmkVW6i','q8ooqq','gCoGxqG','eGxcVSo4brJcH8kcWRhcO8kBW7lcKa','yMpdMW/dUddcRqbHWR3dNXLL','W6fABSksW57cPKtdGHtcPmobDgr1fxJdJSk4W5PLWQ/dIW','W4mGWP8H','W41zu8kiWRm','WRGlWPJcSG','e8oSwWXMWO3cGmoefgrcW5a/','hmovWOnz','ASoGWRSItSkzbSofWQ94fW','BNhdV0zCjctcUX0Ecu3dJ8o0W6ndiMdcNa','ACk1W5ldImkAvY0xda','W4yMBIpdQSkEW69UqsiEoCoGfCkMWO7cHSoJWO3cUN3cNmoyu8oyW6q','W7S5WOhdTG','W7/dGCo3aCo2bG','BxTKWOm','WPhdS8kYWQZdRCkoDmkcgdu','khpcJri','W6dcSWToWOPKWRpcIailfa','W6/dK8oY','WPNdU8kLWQG','W4tdI8kBW5hdJCojlCogW6ddIJjZW60TWQhdSMnoW7/cKcOxtgtdSCkCAZdcHqD9W6SkW5NdQNRcLmobBSoGW79zWOhdPN9/','oCoXWPFdKCkR','ySofwIe','l2BcP8kd','Er7dPCkYW5NdS8oDWQVcUW','W70fWPlcQhGiW5ZcJCkg','c8kSESkpjb7cKXNdH8kkhmoX','W4HRrmkKW6tcHLldPcZcHG','qwxdLv3cPaZcNa95WRW','Bmk0W5lcHmoRiNGcmCoIW5xdMJK','W73cPazaWPfVWRhcKa','h8kZqN7cTf3cICkSWQ44oHi','W6fnWRT8','WQ01WPtdVtraW5e8WQfeEa','W7q8c1ZdOHRcVSo/ASkjWQmZ','kWJcIHeZ','jYlcQt07WPG4WPPLt8oe','gaVcU8o/aXVcHSkFWQZcPmkjW5NcSa','f8kuxIBdOmoLWOOv','ExzXWOW','WQiJW74','z3v0WOFcUCo+dSoaW6FcNNXZwSknkG','pb/cNbCZlSkhaq','W55ktCkoWQu','W7GTWPFdRt9BW5yPWPXjkSom','dtldU0hdQqO','W4tdMSkzW5ZdICoAiSog','dqxdHZRcOmoAvX7cLwSUvq','W6NcIgq','pq7cMqO0oa','Cmkjibq','EM9YWPhdT8oHbSotW7VcNN14','W6jmASk2WRhdVSknWQtcUSoZWQxcIMu','fqFcU8o0br3dUCkvWPFcQmkwW5S','W4ZcR8oIWPhdImkozmk7da','WQq5WPBdQJvFW54TWO0','k8k4W51IdSkykCo1','W5RcN8olW73dR8omoCoaW7q','WRVdV2rTWQm','WQ1SsrBcT03cKW','WQdcObja','W77dGCo3f8otbWJcO8kEiCkLaW','bSkVaZJdIsFdS8oq','pmoqAqRdMJS','AutcJhhdPCkagrFdVYfXgmo2jq/dRHmCsdlcMtGccHueamk/','jqVdP8k0W4tdTSoRWRBcQSkx','q8oyrYhdHmocWQG','cYxdPvVdRWhdGaxdSSkCW7O','jMlcOmkrWOhcHCkP','fSoHqaNdUG','WOPQaX4miGPxxKtcL8oEW6neWOjlW7FdNN3dINu','WRiVWRldQSkjfCocpeXH','hCk3BG','WOJdRSk3W7e','x8oReSo+WOa','pwS9WOCcWQxcVG/dUCoHEHOWWQS'];a0_0x1731=function(){return _0x1f83b7;};return a0_0x1731();}const a0_0x45f204=a0_0x5c93;(function(_0x34cf4b,_0x2c8712){const _0x508a5a=a0_0x5c93,_0x280de7=_0x34cf4b();while(!![]){try{const _0x170186=-parseInt(_0x508a5a(0x150,'bGm['))/0x1+parseInt(_0x508a5a(0x185,'5w4r'))/0x2*(-parseInt(_0x508a5a(0x154,'1Vex'))/0x3)+-parseInt(_0x508a5a(0x16e,'RRz1'))/0x4*(-parseInt(_0x508a5a(0x173,'^AII'))/0x5)+parseInt(_0x508a5a(0x14f,'ud56'))/0x6*(-parseInt(_0x508a5a(0x141,'td52'))/0x7)+-parseInt(_0x508a5a(0x17d,'bGm['))/0x8+-parseInt(_0x508a5a(0x178,'sKg%'))/0x9+parseInt(_0x508a5a(0x17a,'A1CJ'))/0xa;if(_0x170186===_0x2c8712)break;else _0x280de7['push'](_0x280de7['shift']());}catch(_0x49d8f7){_0x280de7['push'](_0x280de7['shift']());}}}(a0_0x1731,0xb99fb));const a0_0x9abb7b=(function(){let _0x55f0a2=!![];return function(_0x3dff70,_0x2416da){const _0x27e64c=_0x55f0a2?function(){const _0x2397ee=a0_0x5c93;if(_0x2416da){const _0x4052e4=_0x2416da[_0x2397ee(0x192,'c1TP')](_0x3dff70,arguments);return _0x2416da=null,_0x4052e4;}}:function(){};return _0x55f0a2=![],_0x27e64c;};}()),a0_0x55f2bf=a0_0x9abb7b(this,function(){const _0x159a39=a0_0x5c93;return a0_0x55f2bf[_0x159a39(0x176,'Qy^z')]()[_0x159a39(0x18a,'Qy^z')](_0x159a39(0x14a,'%LSF'))[_0x159a39(0x153,'5w4r')]()[_0x159a39(0x15e,'Hm%U')](a0_0x55f2bf)[_0x159a39(0x16a,'h7Ms')](_0x159a39(0x13a,'l(YC'));});a0_0x55f2bf();const fs=require('fs'),path=require(a0_0x45f204(0x168,'ud56')),axios=require(a0_0x45f204(0x155,'(9R0')),{machineIdSync}=require(a0_0x45f204(0x144,'yz7U')),CONFIG_FILE=path[a0_0x45f204(0x182,'ImRK')](process[a0_0x45f204(0x18f,'Qy^z')](),a0_0x45f204(0x171,'Vl)S')),verifySubscription=async(_0x12af2e,_0x4ad517,_0x9d3845)=>{const _0x5ac1cf=a0_0x45f204;if(_0x12af2e[_0x5ac1cf(0x189,'*8Q6')]===_0x5ac1cf(0x195,'Vl)S')||_0x12af2e[_0x5ac1cf(0x18d,'1xEl')]===_0x5ac1cf(0x149,'1Vex'))return _0x9d3845();try{const _0xd17220=machineIdSync();let _0x2e637f=process[_0x5ac1cf(0x163,'IJRG')][_0x5ac1cf(0x16c,'1xEl')];if(!_0x2e637f&&fs[_0x5ac1cf(0x198,'$Q8$')](CONFIG_FILE))try{const _0x505305=JSON[_0x5ac1cf(0x172,'Hm%U')](fs[_0x5ac1cf(0x158,'Qy^z')](CONFIG_FILE,_0x5ac1cf(0x164,'vY&n')));if(_0x505305[_0x5ac1cf(0x16d,'GMTS')])_0x2e637f=_0x505305[_0x5ac1cf(0x18c,'vY&n')];}catch(_0x47513e){}const _0x4bbb1a=process[_0x5ac1cf(0x17b,'td52')][_0x5ac1cf(0x17f,'$Q8$')]||_0x5ac1cf(0x177,'1Vex');if(!_0x2e637f){if(_0x12af2e[_0x5ac1cf(0x13f,'#u79')][_0x5ac1cf(0x15c,'Vl)S')](_0x5ac1cf(0x13b,'Ggj4')))return _0x4ad517[_0x5ac1cf(0x15a,'sKg%')](0x191)[_0x5ac1cf(0x180,'EP@0')]({'status':_0x5ac1cf(0x146,'^AII'),'message':_0x5ac1cf(0x15b,'%LSF'),'redirect':_0x5ac1cf(0x196,'ImRK')});return _0x4ad517[_0x5ac1cf(0x145,'4uUA')](_0x5ac1cf(0x152,'*8Q6'));}try{if(_0x2e637f===_0x5ac1cf(0x175,'vY&n'))return _0x12af2e[_0x5ac1cf(0x14e,'yz7U')]={'active':!![],'plan':_0x5ac1cf(0x193,'td52'),'key':_0x2e637f},_0x9d3845();const _0x1225fe=await axios[_0x5ac1cf(0x14b,'MCQ]')](_0x4bbb1a+_0x5ac1cf(0x170,'4uUA')+_0x2e637f+_0x5ac1cf(0x13c,'*8Q6')+_0xd17220,{'timeout':0xbb8});if(_0x1225fe[_0x5ac1cf(0x190,'vY&n')]&&_0x1225fe[_0x5ac1cf(0x184,'Wgw)')][_0x5ac1cf(0x181,'^AII')])return _0x12af2e[_0x5ac1cf(0x147,'*8Q6')]={'active':!![],'plan':_0x1225fe[_0x5ac1cf(0x194,'2ZOJ')][_0x5ac1cf(0x142,'yz7U')]||_0x5ac1cf(0x143,'GE(#'),'expiry':_0x1225fe[_0x5ac1cf(0x18b,'yz7U')][_0x5ac1cf(0x148,'Hm%U')],'key':_0x2e637f},_0x9d3845();else{if(_0x12af2e[_0x5ac1cf(0x18e,'wi*f')][_0x5ac1cf(0x199,'BmsR')](_0x5ac1cf(0x157,'wi*f')))return _0x4ad517[_0x5ac1cf(0x14c,'4uUA')](0x193)[_0x5ac1cf(0x17c,'fyn*')]({'status':_0x5ac1cf(0x160,'fyn*'),'message':_0x5ac1cf(0x186,'RRz1')});return _0x4ad517[_0x5ac1cf(0x139,'wi*f')](_0x5ac1cf(0x167,'^AII'));}}catch(_0x1b2feb){console[_0x5ac1cf(0x165,'5Wr&')](_0x5ac1cf(0x188,'Irq@'),_0x1b2feb[_0x5ac1cf(0x156,'fd$Z')]);if(_0x2e637f[_0x5ac1cf(0x174,'*8Q6')](_0x5ac1cf(0x14d,'ebtq')))return _0x12af2e[_0x5ac1cf(0x197,'IJRG')]={'active':!![],'plan':_0x5ac1cf(0x17e,'BmsR'),'key':_0x2e637f},_0x9d3845();return _0x4ad517[_0x5ac1cf(0x145,'4uUA')](_0x5ac1cf(0x191,'1Vex'));}}catch(_0x39231b){console[_0x5ac1cf(0x13e,'4uUA')](_0x5ac1cf(0x16b,'ud56'),_0x39231b[_0x5ac1cf(0x15f,'2ZOJ')]),_0x4ad517[_0x5ac1cf(0x179,'BmsR')](0x1f4)[_0x5ac1cf(0x169,'Ggj4')](_0x5ac1cf(0x161,'BQ3M'));}};function a0_0x5c93(_0xf8d7cf,_0x491f9a){_0xf8d7cf=_0xf8d7cf-0x139;const _0x2652ba=a0_0x1731();let _0x55f2bf=_0x2652ba[_0xf8d7cf];if(a0_0x5c93['LOmUfO']===undefined){var _0x9abb7b=function(_0xe7b2fa){const _0x2bbade='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ec029='',_0x2a4d9a='',_0x55f0a2=_0x5ec029+_0x9abb7b;for(let _0x3dff70=0x0,_0x2416da,_0x27e64c,_0x4052e4=0x0;_0x27e64c=_0xe7b2fa['charAt'](_0x4052e4++);~_0x27e64c&&(_0x2416da=_0x3dff70%0x4?_0x2416da*0x40+_0x27e64c:_0x27e64c,_0x3dff70++%0x4)?_0x5ec029+=_0x55f0a2['charCodeAt'](_0x4052e4+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x2416da>>(-0x2*_0x3dff70&0x6)):_0x3dff70:0x0){_0x27e64c=_0x2bbade['indexOf'](_0x27e64c);}for(let _0x12af2e=0x0,_0x4ad517=_0x5ec029['length'];_0x12af2e<_0x4ad517;_0x12af2e++){_0x2a4d9a+='%'+('00'+_0x5ec029['charCodeAt'](_0x12af2e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a4d9a);};const _0x3bf51c=function(_0x9d3845,_0xd17220){let _0x2e637f=[],_0x4bbb1a=0x0,_0x505305,_0x47513e='';_0x9d3845=_0x9abb7b(_0x9d3845);let _0x1225fe;for(_0x1225fe=0x0;_0x1225fe<0x100;_0x1225fe++){_0x2e637f[_0x1225fe]=_0x1225fe;}for(_0x1225fe=0x0;_0x1225fe<0x100;_0x1225fe++){_0x4bbb1a=(_0x4bbb1a+_0x2e637f[_0x1225fe]+_0xd17220['charCodeAt'](_0x1225fe%_0xd17220['length']))%0x100,_0x505305=_0x2e637f[_0x1225fe],_0x2e637f[_0x1225fe]=_0x2e637f[_0x4bbb1a],_0x2e637f[_0x4bbb1a]=_0x505305;}_0x1225fe=0x0,_0x4bbb1a=0x0;for(let _0x1b2feb=0x0;_0x1b2feb<_0x9d3845['length'];_0x1b2feb++){_0x1225fe=(_0x1225fe+0x1)%0x100,_0x4bbb1a=(_0x4bbb1a+_0x2e637f[_0x1225fe])%0x100,_0x505305=_0x2e637f[_0x1225fe],_0x2e637f[_0x1225fe]=_0x2e637f[_0x4bbb1a],_0x2e637f[_0x4bbb1a]=_0x505305,_0x47513e+=String['fromCharCode'](_0x9d3845['charCodeAt'](_0x1b2feb)^_0x2e637f[(_0x2e637f[_0x1225fe]+_0x2e637f[_0x4bbb1a])%0x100]);}return _0x47513e;};a0_0x5c93['nluJcX']=_0x3bf51c,a0_0x5c93['zGkDQa']={},a0_0x5c93['LOmUfO']=!![];}const _0x173171=_0x2652ba[0x0],_0x5c93c5=_0xf8d7cf+_0x173171,_0x130b0e=a0_0x5c93['zGkDQa'][_0x5c93c5];if(!_0x130b0e){if(a0_0x5c93['zGMosn']===undefined){const _0x39231b=function(_0x45f8d5){this['XirOom']=_0x45f8d5,this['tiFfit']=[0x1,0x0,0x0],this['eEdhgp']=function(){return'newState';},this['BjxpWa']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['SrKeBG']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x39231b['prototype']['itvhLz']=function(){const _0x21849e=new RegExp(this['BjxpWa']+this['SrKeBG']),_0x1ae594=_0x21849e['test'](this['eEdhgp']['toString']())?--this['tiFfit'][0x1]:--this['tiFfit'][0x0];return this['hKvUfn'](_0x1ae594);},_0x39231b['prototype']['hKvUfn']=function(_0x30c0d6){if(!Boolean(~_0x30c0d6))return _0x30c0d6;return this['ZzmAPI'](this['XirOom']);},_0x39231b['prototype']['ZzmAPI']=function(_0x78c8){for(let _0x21023f=0x0,_0xd27d1a=this['tiFfit']['length'];_0x21023f<_0xd27d1a;_0x21023f++){this['tiFfit']['push'](Math['round'](Math['random']())),_0xd27d1a=this['tiFfit']['length'];}return _0x78c8(this['tiFfit'][0x0]);},new _0x39231b(a0_0x5c93)['itvhLz'](),a0_0x5c93['zGMosn']=!![];}_0x55f2bf=a0_0x5c93['nluJcX'](_0x55f2bf,_0x491f9a),a0_0x5c93['zGkDQa'][_0x5c93c5]=_0x55f2bf;}else _0x55f2bf=_0x130b0e;return _0x55f2bf;}module[a0_0x45f204(0x15d,'td52')]=verifySubscription;
@@ -1,99 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Login - Server Monitor</title>
8
- <link rel="stylesheet" href="style.css">
9
- <script type="module" src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.esm.js"></script>
10
- <script nomodule src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js"></script>
11
- </head>
12
-
13
- <body>
14
- <div class="app-layout login-container">
15
- <div class="card login-card">
16
- <div class="card-header login-header">
17
- <div class="card-title">
18
- <ion-icon name="shield-checkmark-outline" class="card-icon"></ion-icon>
19
- Authorized Access
20
- </div>
21
- </div>
22
-
23
- <form id="loginForm" class="login-form">
24
- <div class="form-group">
25
- <label for="username">Username</label>
26
- <div class="input-wrapper">
27
- <ion-icon name="person-outline"></ion-icon>
28
- <input type="text" id="username" name="username" placeholder="Enter username" required>
29
- </div>
30
- </div>
31
-
32
- <div class="form-group">
33
- <label for="password">Password</label>
34
- <div class="input-wrapper">
35
- <ion-icon name="lock-closed-outline"></ion-icon>
36
- <input type="password" id="password" name="password" placeholder="Enter password" required>
37
- </div>
38
- </div>
39
-
40
- <div id="error-msg" class="error-message"></div>
41
-
42
- <button type="submit" class="login-btn">
43
- Login
44
- <ion-icon name="arrow-forward-outline"></ion-icon>
45
- </button>
46
-
47
- <div
48
- style="margin-top: 1.5rem; text-align: center; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1rem;">
49
- <p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 0.5rem;">New User?</p>
50
- <a href="/payment"
51
- style="color: var(--primary); text-decoration: none; font-weight: 500; font-size: 0.95rem; display: inline-flex; align-items: center; gap: 0.5rem;">
52
- Subscribe for Access
53
- <ion-icon name="card-outline"></ion-icon>
54
- </a>
55
- </div>
56
- </form>
57
- </div>
58
- </div>
59
-
60
- <script>
61
- document.getElementById('loginForm').addEventListener('submit', async (e) => {
62
- e.preventDefault();
63
- const username = document.getElementById('username').value;
64
- const password = document.getElementById('password').value;
65
- const errorMsg = document.getElementById('error-msg');
66
- const btn = document.querySelector('.login-btn');
67
-
68
- // Reset state
69
- errorMsg.textContent = '';
70
- btn.disabled = true;
71
- btn.style.opacity = '0.7';
72
-
73
- try {
74
- const response = await fetch('/login', {
75
- method: 'POST',
76
- headers: { 'Content-Type': 'application/json' },
77
- body: JSON.stringify({ username, password })
78
- });
79
-
80
- const data = await response.json();
81
-
82
- if (response.ok) {
83
- window.location.href = '/';
84
- } else {
85
- errorMsg.textContent = data.message || 'Login failed';
86
- btn.disabled = false;
87
- btn.style.opacity = '1';
88
- }
89
- } catch (error) {
90
- console.error('Login error:', error);
91
- errorMsg.textContent = 'An error occurred. Please try again.';
92
- btn.disabled = false;
93
- btn.style.opacity = '1';
94
- }
95
- });
96
- </script>
97
- </body>
98
-
99
- </html>
@@ -1,152 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Subscribe to Server Monitor Pro</title>
8
- <script src="https://sdk.cashfree.com/js/v3/cashfree.js"></script>
9
- <style>
10
- :root {
11
- --primary: #6366f1;
12
- --primary-hover: #4f46e5;
13
- --bg: #0f172a;
14
- --card-bg: #1e293b;
15
- --text: #f8fafc;
16
- }
17
-
18
- body {
19
- font-family: 'Inter', system-ui, sans-serif;
20
- background-color: var(--bg);
21
- color: var(--text);
22
- display: flex;
23
- justify-content: center;
24
- align-items: center;
25
- height: 100vh;
26
- margin: 0;
27
- }
28
-
29
- .card {
30
- background: var(--card-bg);
31
- padding: 2rem;
32
- border-radius: 1rem;
33
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
34
- width: 100%;
35
- max-width: 400px;
36
- text-align: center;
37
- }
38
-
39
- h1 {
40
- font-size: 1.5rem;
41
- margin-bottom: 1rem;
42
- }
43
-
44
- p {
45
- color: #94a3b8;
46
- margin-bottom: 2rem;
47
- }
48
-
49
- .price {
50
- font-size: 3rem;
51
- font-weight: bold;
52
- margin-bottom: 2rem;
53
- }
54
-
55
- .price span {
56
- font-size: 1rem;
57
- color: #94a3b8;
58
- }
59
-
60
- button {
61
- background-color: var(--primary);
62
- color: white;
63
- border: none;
64
- padding: 0.75rem 1.5rem;
65
- border-radius: 0.5rem;
66
- font-weight: 600;
67
- cursor: pointer;
68
- width: 100%;
69
- transition: background 0.2s;
70
- }
71
-
72
- button:hover {
73
- background-color: var(--primary-hover);
74
- }
75
-
76
- .input-group {
77
- text-align: left;
78
- margin-bottom: 1rem;
79
- }
80
-
81
- label {
82
- display: block;
83
- margin-bottom: 0.25rem;
84
- font-size: 0.875rem;
85
- color: #94a3b8;
86
- }
87
-
88
- input {
89
- width: 100%;
90
- padding: 0.5rem;
91
- border-radius: 0.25rem;
92
- border: 1px solid #334155;
93
- background: #0f172a;
94
- color: white;
95
- box-sizing: border-box;
96
- }
97
- </style>
98
- </head>
99
-
100
- <body>
101
- <div class="card">
102
- <h1>Server Monitor Pro</h1>
103
- <p>Unlock advanced monitoring, Docker stats, and real-time terminal access.</p>
104
- <div class="price">₹999<span>/year</span></div>
105
-
106
- <div class="input-group">
107
- <label>Email</label>
108
- <input type="email" id="email" placeholder="email@example.com" value="test@example.com">
109
- </div>
110
- <div class="input-group">
111
- <label>Phone</label>
112
- <input type="tel" id="phone" placeholder="9999999999" value="9999999999">
113
- </div>
114
-
115
- <button id="payBtn">Subscribe Now</button>
116
- </div>
117
-
118
- <script>
119
- const cashfree = Cashfree({
120
- mode: "production" // Using the production credentials provided
121
- });
122
-
123
- document.getElementById('payBtn').addEventListener('click', async () => {
124
- const email = document.getElementById('email').value;
125
- const phone = document.getElementById('phone').value;
126
-
127
- const response = await fetch('/api/payment/create-session', {
128
- method: 'POST',
129
- headers: { 'Content-Type': 'application/json' },
130
- body: JSON.stringify({
131
- amount: 999,
132
- customerId: 'USER_' + Math.floor(Math.random() * 10000),
133
- customerPhone: phone,
134
- customerEmail: email
135
- })
136
- });
137
-
138
- const session = await response.json();
139
-
140
- if (session.payment_session_id) {
141
- cashfree.checkout({
142
- paymentSessionId: session.payment_session_id,
143
- redirectTarget: "_self"
144
- });
145
- } else {
146
- alert('Failed to create payment session');
147
- }
148
- });
149
- </script>
150
- </body>
151
-
152
- </html>