// ----- MEMBERSHIP LEVEL + AMOUNT (robust) ----- function getMembershipLevel(){ var form = document.querySelector('form[class*="swpm"], form[id*="swpm"]') || document.querySelector('form'); if(!form) return null; // 1) Hidden input var hidden = form.querySelector('input[name="membership_level"], input[name="level"], input[name="swpm_level"]'); if (hidden && hidden.value && hidden.value.trim() !== '') { var n = parseInt(hidden.value.trim(), 10); if (!isNaN(n)) return n; } // 2) Radio group var radios = form.querySelectorAll('input[type="radio"][name="membership_level"], input[type="radio"][name="level"], input[type="radio"][name="swpm_level"]'); if (radios && radios.length) { for (var i=0;i amount (supports both numeric IDs and string plan IDs if you add them) function amountForLevel(lvl){ // If your site uses plan IDs instead of 3/4/5, map them here too: // e.g. if "Standard Plan" is ID 7 and should be ₹400: if (lvl === 7) return 400; if (lvl === 3) return 400; if (lvl === 4) return 300; if (lvl === 5) return 200; return null; } // Always format amount as 2 decimals for UPI function formatAmount(am){ if (am == null) return null; var n = Number(am); if (!isNaN(n)) return n.toFixed(2); // "400.00" return null; } // Build UPI link with forced amount + tn=username function upiLink(username){ var lvl = getMembershipLevel(); var am = amountForLevel(lvl); var amStr = formatAmount(am); var tn = (username || '').trim(); var link = 'upi://pay?pa='+encodeURIComponent(payeeVPA) + '&pn='+encodeURIComponent(payeeName) + '&cu=INR' + (amStr ? '&am='+encodeURIComponent(amStr) : '') + (tn ? '&tn='+encodeURIComponent(tn) : ''); return link; } // Re-render (unchanged call sites) function render(){ var uname = (userInput.value || '').trim(); var link = upiLink(uname); if (qr.clear) qr.clear(); qr.makeCode(link); var open = document.getElementById('swpm-upi-open'); if(open) open.href = link; } PSLV-C57 Archives - Bharat Pulse News