如何用1小时搭建免费自动发卡商城:独角数卡 dujiaoka 完整部署与二次开发指南

发布时间:2026/11/4 15:36:25
如何用1小时搭建免费自动发卡商城:独角数卡 dujiaoka 完整部署与二次开发指南

如何用1小时搭建免费自动发卡商城:独角数卡 dujiaoka 完整部署与二次开发指南

【免费下载链接】dujiaoka🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉项目地址: https://gitcode.com/gh_mirrors/du/dujiaoka

独角数卡 dujiaoka 是一款基于 Laravel 框架开源免费的自动售货系统,帮你在线售卖卡密、会员账号等虚拟商品并实现自动发货。本文带你摸清它的分层架构、订单状态流转、支付通道扩展方式,并给出一套可直接照做的部署步骤。

它解决什么问题:凌晨三点还有人下单怎么办

想象一下:你卖游戏点卡或视频会员,客户在凌晨三点下单,你睡醒才想起去发货,体验极差,单量也上不去。手工流程里藏着三个真痛点:

  1. 发货靠人肉:复制卡密、填订单号,一单几十秒,日单量过百就忙不过来;
  2. 收款对账乱:支付宝、微信、PayPal 各走各的渠道,分不清哪笔钱对应哪张卡;
  3. 过期单没人管:客户下单不付款,库存白占着,也没人回收。

dujiaoka 的定位就是把这些环节全自动跑完:客户选商品、付钱,系统在秒级内分配卡密、回写订单状态、发送邮件,并通过 Server酱、Telegram 等渠道通知你。它适合独立站长、虚拟商品卖家和想自建发卡平台的开发者,不依赖任何第三方 SaaS,数据完全留在自己的服务器上。

底层是怎么搭起来的:Laravel 分层 + Dcat Admin 双入口

系统底座是 Laravel 6(PHP ^7.2.5 或 8.0,见 composer.json),后台界面用 Dcat Admin(一个基于 Laravel 的开源管理框架)搭建。整个app/目录按职责切得很干净:

  • app/Service/:业务核心层。下单、发卡、计价、支付配置等逻辑都在这里,控制器只做参数搬运;
  • app/Models/:Eloquent 数据模型,Order、Goods、Carmis、Coupon、Pay 五张主表对应五大业务对象,均带软删除;
  • app/Http/Controllers/Pay/:支付网关目录,每个渠道一个控制器;
  • app/Admin/:后台管理的全部页面与操作(商品、订单、优惠券、统计图表);
  • app/Jobs/:队列任务,负责订单过期、邮件、各类推送;
  • public/assets/:三套前台模板(unicorn、luna、hyper),后台一键切换。

请求进来后先过 DujiaoBoot 中间件:检查是否已安装(install.lock)、是否用 QQ/微信内置浏览器访问(可展示提示页)、加载语言与极验配置,再放行到具体控制器。

核心功能是怎么跑起来的:一张订单的单向旅程

选三个最核心的模块看数据流。

订单状态机:状态常量定义在 Order 模型——待支付 → 待处理/已完成 → 失败/过期/异常。OrderProcessService 是总调度:

  1. createOrder()生成 16 位订单号,按优惠券、批发价逐级算出实付金额,落库后立刻 dispatch 一个OrderExpired延迟队列任务(默认 5 分钟不付款自动过期);
  2. 支付回调进来后走completedOrder(),先做金额比对防篡改,再按商品类型分流;
  3. 发货后销量累加,异步触发邮件与推送。

自动发卡:processAuto()按"商品 + 未售出状态"批量取足数量的卡密,写入订单详情并把卡密置为已售;库存不足则把订单标为异常。手动处理订单则转入待处理状态,邮件通知管理员。

支付网关:渠道配置存在pays表(跳转/扫码两种模式、PC/移动/通用三种端),PayService 按标识取出启用的网关。支付路由文件 为每个渠道注册两条路由——gateway发起支付、notify_url接收回调,内置支付宝、微信、PayPal、Stripe、易支付、epusdt 等 12 个渠道。

模块关键路径主要功能技术特点
订单处理app/Service/OrderProcessService.php建单、验款、发货、状态流转事务包裹、延迟队列过期、金额比对
商品与卡密app/Service/GoodsService.php分组展示、库存统计、卡密分配分组关联查询、未售卡密计数
支付网关app/Http/Controllers/Pay/12 渠道下单与回调一渠道一控制器、路由统一模式

从零跑起来:6 步部署 dujiaoka

👉环境要求:PHP 7.2.5+/8.0、MySQL 5.7+(或 MariaDB)、Composer、Nginx;建议再装 Redis 并开启 OPcache。

  1. 拉取代码
git clone https://gitcode.com/gh_mirrors/du/dujiaoka
  1. 装依赖
composer install
  1. 建库建用户:在 MySQL 里创建一个空数据库和授权账号(用图形化管理工具或直接执行CREATE DATABASE均可)。
  2. 配置 Nginx:网站根目录指向public/,location /用try_files $uri $uri/ /index.php?$query_string;兜底,PHP 交给 fpm。
  3. 走 Web 安装向导:浏览器打开域名进入安装页,填数据库连接、网站 URL 和 Redis 密码,一键导入 install.sql 并创建管理员。
  4. 收尾并启动队列:把.env里APP_DEBUG改为false,再用 Supervisor 拉起常驻队列(过期判定、邮件、推送都靠它):
php artisan queue:work

✅ 到这里,前台能下单、后台能发货,整条链路就跑通了。

怎么改出自己的版本:三个最常见的二开路径

  1. 接一个新支付渠道:在app/Http/Controllers/Pay/下新建控制器继承 PayController,实现gateway(发起支付)和notifyUrl(回调验签后调用completedOrder),再到路由文件里补两行注册即可;
  2. 改发货逻辑:继承OrderProcessService覆写processAuto,比如按商品类型走不同发货策略,原逻辑保留在parent::里随时兜底;
  3. 换前台皮肤:三套模板已放在public/assets/下,后台可切换;想完全定制就照其中一套的目录结构新建模板即可。

💡 性能与生产环境要点:

  • 队列 Worker 按机器核数开 2~4 个进程,高峰期发货不排队;
  • 热点配置(支付开关、订单过期时长)走 Redis 缓存,避免每次读库;
  • 开启 OPcache,并为orders.order_sn、carmis.status等高频查询字段确认有索引;
  • 生产环境务必APP_DEBUG=false、启用 HTTPS,回调接口做好 IP 白名单与签名校验;
  • 数据库每日备份,卡密表尤其要做异地存储。

值不值得用:和同类方案的差异

对比"自己拿 Laravel 从零搭",它把发卡、收款、后台、模板四块最耗时间的东西都做完了,省下的通常是数周时间;对比商业发卡软件,它 MIT 协议、完全免费,代码可读可改,支付渠道和发货规则都攥在自己手里。它的取舍也直白:功能以虚拟商品售卖为边界,如果你要做实物电商,Laravel 生态里的电商组件可能更合适。需要提醒的是,原仓库已进入停更状态,作者转向了新版项目,生产部署前建议先评估版本与后续维护策略。总的来说,只要你的场景是虚拟商品自动售卖,dujiaoka 依然是门槛最低、可控性最高的开源选择之一。

【免费下载链接】dujiaoka🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉项目地址: https://gitcode.com/gh_mirrors/du/dujiaoka

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考