Welcome to MAIFANG — curated source code


Specifications

分类 script
标签 License, Manager, Laravel, Envato, Webhook, 1源码简介, 是一个基于, 框架开发的独立授权解决方案。它的主要用途是充当“授权服务器”。, 当你开发了一款, 插件、主题或独立软件并打算出售时,你可以将此系统部署在自己的服务器上。每当用户购买你的软件时,系统会生成一个授权码(License, Key)。你的软件在运行时会远程连接到这个, 验证授权是否合法,并获取最新的版本更新。, 核心功能特性, (License, Management), 多类型授权:, 支持永久授权, (Perpetual)、订阅制, (Subscription), (Trial)。
作者 reishi
采集源 topide.com

About this source

脚本代码 分享 打印版本 举报 License Manager v1.1.1 - Laravel PHP 授权与更新管理系统 reishi 2026-04-20 80 0 130 1.源码简介License Manager 是一个基于 Laravel 框架开发的独立授权解决方案。它的主要用途是充当“授权服务器”。当你开发了一款 PHP 插件、主题或独立软件并打算出售时,你可以将此系统部署在自己的服务器上。每当用户购买你的软件时,系统会生成一个授权码(License Key)。你的软件在运行时会远程连接到这个 License Manager 验证授权是否合法,并获取最新的版本更新。2. 核心功能特性🛡️ 授权管理 (License Management)多类型授权: 支持永久授权 (Perpetual)、订阅制 (Subscription) 和 试用版 (Trial)。激活限制: 可以限制单个授权码支持的域名数量、IP 地址数量或安装次数。自动黑名单: 能够检测异常的激活请求,并自动将违规的授权码列入黑名单。🔄 自动更新系统 (Auto-Updates)版本控制: 开发者可以上传新版本的代码包(.zip),并记录版本日志(Changelog)。远程分发: 客户端软件通过 API 检测到新版本后,可以直接从你的 License Manager 服务器下载并解压更新,无需手动替换文件。🔌 平台集成 (Third-party Integration)Envato/CodeCanyon 集成: 支持直接验证 Envato 的 Purchase Code。如果用户在 ThemeForest 或 CodeCanyon 购买了你的产品,系统可以自动同步并生成对应的授权。REST API: 提供极其完整的 API 接口,方便你将授权验证逻辑集成到任何 PHP、Python 或 jаvascript 应用程序中。👥 客户与门户 (Customer Portal)自服务门户: 客户可以登录专属后台查看自己的授权码、下载购买的产品、查看剩余有效期或管理已绑定的域名。社交登录: 支持通过 Google、GitHub 等第三方账号快速登录。更多的官方介绍可以移步 https://landing.botble.com/license-manager/ 查看。关于授权的使用方法和例子请访问GitHub文档 https://github.com/botble/license-manager-examples3. 技术优势完全独立运行: 它是一个独立的 Laravel 项目,不依赖于任何其他系统(如 Botble CMS),这使得它的架构非常轻量且纯净。高安全性: * 使用 AES-256 加密 算法处理授权数据。域名规范化 (Domain Normalization):防止用户通过修改子域名或带 www 前缀来绕过授权检测。Webhook 通知: 当有新授权生成、激活失败或授权过期时,可以通过 Webhook 实时通知你的 Slack 或其他系统。4. 适用人群Envato 卖家: 需要自动化验证购买记录并提供自动更新的开发者。SaaS 供应商: 需要管理多租户授权或按月扣费的团队。数字产品销售商: 销售脚本、主题或插件的个人开发者。5. 售后支持根据官方描述,该源码提供:完整文档: 包含安装指南和 API 集成示例。工单系统: 专业的售后支持中心,响应时间通常在 12-24 小时内。不过售后支持除文档之外,都需要正版用户才能享受。6.下载地址&安装方法 .dlepay-box{border:1px solid rgba(128,128,128,.28);border-radius:14px;padding:18px 20px;margin:18px 0;background:rgba(128,128,128,.06);box-shadow:0 6px 20px rgba(15,23,42,.05);font-size:14px;line-height:1.7;color:inherit} .dlepay-box.dlepay-free,.dlepay-box.dlepay-paid{border:1px solid rgba(34,197,94,.5);background:rgba(34,197,94,.09);box-shadow:none} .dlepay-head{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap} .dlepay-badge{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;background:rgba(15,118,110,.92);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap} .dlepay-free .dlepay-badge,.dlepay-paid .dlepay-badge{background:rgba(22,163,74,.92)} .dlepay-head__text{flex:1;min-width:200px;font-size:14px;line-height:1.7;color:inherit} .dlepay-head__text b{color:#ef4444;font-size:16px} .dlepay-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px} .dlepay-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:transform .15s ease,box-shadow .15s ease;font-family:inherit} .dlepay-btn:active{transform:translateY(1px)} .dlepay-btn-primary{background:#1677ff;color:#fff;box-shadow:0 8px 18px rgba(22,119,255,.22)} .dlepay-btn-primary:hover{background:#0f62d9;color:#fff} .dlepay-btn-ghost{background:transparent;color:inherit;border-color:rgba(128,128,128,.42)} .dlepay-btn-ghost:hover{background:rgba(128,128,128,.14)} .dlepay-sub{margin-top:8px;font-size:12px;color:inherit;opacity:.62} .dlepay-note{margin-bottom:10px;font-size:13px;font-weight:700;color:#16a34a} .dlepay-content{margin-top:12px;padding:14px 16px;border:1px dashed rgba(128,128,128,.42);border-radius:10px;background:transparent} .dlepay-modal{position:fixed;left:0;top:0;right:0;bottom:0;z-index:99999;display:none;color:inherit} .dlepay-modal.is-open{display:block} .dlepay-modal__mask{position:absolute;left:0;top:0;right:0;bottom:0;background:rgba(15,23,42,.55)} .dlepay-modal__dialog{position:relative;width:min(92vw,360px);margin:10vh auto 0;background:#fff;color:#0f172a;border-radius:16px;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(15,23,42,.35);text-align:center} .dlepay-modal__title{font-size:16px;font-weight:800;color:#0f172a;margin-bottom:14px} .dlepay-modal__close{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer} .dlepay-modal__close:hover{color:#0f172a} .dlepay-loading{font-size:13px;color:#94a3b8;padding:30px 0} .dlepay-qr{display:none;width:220px;height:220px;margin:0 auto;border-radius:10px;border:1px solid rgba(128,128,128,.3);background:#fff} .dlepay-status{margin-top:12px;font-size:13px;line-height:1.7;color:#334155;min-height:20px} .dlepay-status b{color:#ef4444;font-size:15px} .dlepay-ok{color:#16a34a;font-weight:700} .dlepay-err{color:#ef4444;font-weight:700} [data-theme="dark"] .dlepay-box{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.14);box-shadow:none} [data-theme="dark"] .dlepay-box.dlepay-free,[data-theme="dark"] .dlepay-box.dlepay-paid{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.45)} [data-theme="dark"] .dlepay-head__text b,[data-theme="dark"] .dlepay-status b,[data-theme="dark"] .dlepay-err{color:#f87171} [data-theme="dark"] .dlepay-ok{color:#4ade80} [data-theme="dark"] .dlepay-btn-primary{background:#2f81f7;box-shadow:none} [data-theme="dark"] .dlepay-modal__dialog{background:#1e2228;color:#e6e6e6;box-shadow:0 24px 60px rgba(0,0,0,.65)} [data-theme="dark"] .dlepay-modal__title{color:#f1f5f9} [data-theme="dark"] .dlepay-modal__close{color:#9aa4b2} [data-theme="dark"] .dlepay-modal__close:hover{color:#fff} [data-theme="dark"] .dlepay-loading{color:#9aa4b2} [data-theme="dark"] .dlepay-status{color:#cbd5e1} @media (max-width:480px){.dlepay-box{padding:14px}.dlepay-btn{width:100%}} × 扫码支付 正在加载… (function(){ if (window.dlePayReady) { return; } window.dlePayReady = true; var CFG = {"url":"https:\/\/topide.com\/index.php?do=pay","qr":"https:\/\/topide.com\/index.php?do=alipaypay&action=qr&data=","token":"4454a01b5583578770b54619f3c0e66f0b645761","currency":"积分"}; function el(id) { return document.getElementById(id); } window.dlePayOpen = function(){ var m = el('dlepay-modal'); if (m) { m.className = 'dlepay-modal is-open'; m.setAttribute('aria-hidden','false'); } }; window.dlePayClose = function(){ var m = el('dlepay-modal'); if (m) { m.className = 'dlepay-modal'; m.setAttribute('aria-hidden','true'); } }; window.dlePayStatus = function(html, cls){ var s = el('dlepay-status'); if (!s) { return; } s.className = 'dlepay-status' + (cls ? ' ' + cls : ''); s.innerHTML = html; }; window.dlePayLoading = function(on){ var l = el('dlepay-loading'); var q = el('dlepay-qr'); if (l) { l.style.display = on ? 'block' : 'none'; } if (on && q) { q.style.display = 'none'; } }; function post(action, data, callback){ var fd = new FormData(); fd.append('action', action); fd.append('token', CFG.token || ''); for (var k in data) { if (Object.prototype.hasOwnProperty.call(data, k)) { fd.append(k, data[k]); } } fetch(CFG.url, { method: 'POST', body: fd, credentials: 'same-origin', headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(function(r){ return r.json(); }).then(function(d){ callback(d || { status: 'error', message: '返回数据异常' }); }).catch(function(){ callback({ status: 'error', message: '网络错误,请稍后重试' }); }); } window.dlePayScan = function(tagId, newsId){ window.dlePayOpen(); window.dlePayLoading(true); window.dlePayStatus('正在生成支付二维码…'); post('create', { tag_id: tagId, news_id: newsId }, function(d){ window.dlePayLoading(false); if (d.status === 'success') { if (d.free || d.paid) { window.dlePayStatus('已解锁,正在刷新…'); setTimeout(function(){ location.reload(); }, 500); return; } var q = el('dlepay-qr'); if (q) { q.src = CFG.qr + encodeURIComponent(d.qr_code); q.style.display = 'block'; } window.dlePayStatus('请使用支付宝扫码支付 ' + d.amount + ' 元(' + d.price + ' ' + (CFG.currency || '') + ')'); window.dlePayPoll(d.out_trade_no); } else { window.dlePayStatus('' + (d.message || '下单失败') + ''); } }); }; window.dlePayPoll = function(outTradeNo){ var tries = 0; function tick(){ tries ++; if (tries > 200) { window.dlePayStatus('二维码已过期,请关闭后重新下单'); return; } post('query', { out_trade_no: outTradeNo }, function(d){ if (d.status === 'paid') { window.dlePayStatus('支付成功,正在刷新…'); setTimeout(function(){ location.reload(); }, 600); return; } if (d.status === 'closed') { window.dlePayStatus('订单已关闭,请重新下单'); return; } setTimeout(tick, 3000); }); } setTimeout(tick, 2500); }; window.dlePayBalance = function(tagId, newsId){ if (!window.confirm('确认使用余额支付?')) { return; } window.dlePayOpen(); window.dlePayStatus('正在处理…'); post('balance', { tag_id: tagId, news_id: newsId }, function(d){ if (d.status === 'success') { window.dlePayStatus('支付成功,正在刷新…'); setTimeout(function(){ location.reload(); }, 500); } else { window.dlePayStatus('' + (d.message || '支付失败') + ''); } }); }; })(); 付费内容此部分内容需要支付 10 积分 后查看,请先登录。7.后记起初是在codecanyon平台上发售,拿到源码测试了一下,感觉和之前发布的licensebox功能方面很相似,此时licensebox已经下架,以为作者和此作者达成某种合作,后来licensebox的作者向平台提出DMCA通知,给License Manager下架了,有点搞笑了。 标签 license managerlicense授权管理

Information is compiled from public listings; confirm the final price and support with our service desk.

Request a quote

Leave your contact and we will get back to you shortly. No spam.

Leave your contact and we will get back to you shortly. No spam.

Related sources

View all→
← Back to list