什么是玉龙发卡网分销站
玉龙发卡网分销站是一套多商户聚合 + 商品池分销模式的虚拟商品自动交易系统(发卡平台),基于 Python Flask 开发,包含以下端口:
| 端口 | 地址 | 使用者 | 核心功能 |
|---|---|---|---|
| 平台官网 | / | 访客 / 潜在商户 | 商业模式介绍、商户入驻入口、订单查询 |
| 商城中心 | /mall | 买家 | 商品聚合比价、下单支付、自动收卡密、订单查询、投诉 |
| 商户后台 | /merchant | 入驻商户 | 商品/卡密/订单/商品池分销/资金提现/店铺设置 |
| 授权中心 | /license | 授权用户 | 授权购买续费、授权查询、控制台(本页所属系统的销售站点) |
| 管理后台 | /admin | 平台管理员 | 商户审核、订单、投诉裁决、提现审核、支付与系统配置 |
核心商业逻辑:商户入驻上架商品 → 优质商品可加入商品池 → 其他商户可一键对接分销(代理价拿货赚差价)→ 买家下单后系统自动发卡 → 平台按费率(默认2%)扣除手续费后货款自动分账入商户余额 → 商户满门槛申请提现,管理员审核打款。
系统优势
- 真分销机制:商品池 + 代理价 + 自动分账,有货源的供应商和零库存的分销商都能赚钱
- 全自动交易:支付成功即自动扣库存、自动发卡密、自动入账,7×24 无人值守
- 三方投诉保障:买家-商户-管理员三方沟通室,交易纠纷平台介入裁决
- 四种支付通道:模拟(演示)/ 易支付 / 支付宝当面付 / 微信Native,后台一键切换
- 独立授权中心:本系统自带授权销售站点,支付-开通-续费-查询全自动化
- 云端更新:内置授权激活与在线更新,新版一键获取
- 轻量部署:Python + SQLite 开箱即用,数据量大时可无缝切换 MySQL
更新日志
v1.1.0(当前版本)
- 新增:平台官网首页(商业模式介绍、数据统计、商户入驻)
- 新增:独立授权中心(定价销售、在线支付、自动开通、授权查询、用户控制台)
- 新增:真实支付对接(易支付 / 支付宝当面付 / 微信Native),含异步回调验签、金额校验、幂等处理
- 新增:管理后台授权管理(授权记录 / 授权订单 / 套餐管理)
- 新增:本产品开发文档
v1.0.0
- 三端发卡系统初始版本:买家端 / 商户端 / 管理端
- 商品池代理分销、自动发卡、资金分账、提现审核、三方投诉
环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Linux / Windows / macOS 均可(推荐 Linux) |
| Python | 3.9 及以上 |
| 数据库 | SQLite(默认,零配置)/ MySQL 5.7+(可选) |
| 服务器配置 | 最低 1核1G 即可流畅运行(轻量应用服务器即可) |
| 网络 | 需公网可访问(支付回调要求);建议绑定域名并配置 HTTPS |
安装流程
# 1. 解压程序 unzip yulongfaka.zip -d /www/yulongfaka cd /www/yulongfaka # 2. 安装依赖(建议 Python 虚拟环境) pip3 install -r requirements.txt # 3. 启动(开发/体验) python3 run.py
/install,浏览器中完成 环境检测 → 数据库配置(MySQL/SQLite 二选一,可实时测试连接)→ 设置自己的管理员账号密码 → 自动建表并锁定安装器(生成 install.lock)。安装后管理员密码即你所设,无默认密码。购买授权
- 访问 授权中心,选择套餐(月付 / 季付 / 年付)
- 注册授权中心账号,下单时填写需要授权的域名
- 支付成功后授权自动开通,可随时在授权查询验证
- 到期前在控制台续费,天数在原到期日上累加,不损失剩余时长
部署系统(生产环境)
# 使用 gunicorn 生产级启动 pip3 install gunicorn gunicorn -w 4 -b 127.0.0.1:5000 run:app
Nginx 反向代理示例(含 HTTPS 建议配合 certbot):
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
数据库切换 MySQL(适用于安装后迁移;首次安装直接在安装向导中选 MySQL 即可,无需手动配置):编辑项目根目录 .env 文件中的 DATABASE_URL=mysql+pymysql://user:pass@127.0.0.1:3306/yulongfaka?charset=utf8mb4,重启服务后自动建表。
宝塔面板部署(推荐)
生产环境推荐使用宝塔面板部署,完整图文教程见安装包内 deploy/宝塔部署教程.md,核心流程:
第一步:准备
- 宝塔软件商店安装 Nginx 与 MySQL 5.7/8.0
- 宝塔 → 数据库 → 添加数据库:
yulongfaka(utf8mb4,访问权限=本地服务器,记下账号密码) - 上传源码 zip 到
/www/wwwroot/yulongfaka/并解压
第二步:启动 Python 服务(二选一)
- 方案A 图形界面:软件商店安装"Python项目管理器" → 安装 Python 3.9+ → 添加项目(路径选项目目录 / 框架 Flask / 启动方式 gunicorn / 端口 5000 / 勾选安装依赖)
- 方案B 一键脚本:宝塔终端执行
cd /www/wwwroot/yulongfaka && bash deploy/install.sh,自动完成依赖安装与 systemd 守护启动
第三步:网页安装向导(数据库+管理员)
服务启动后访问站点自动进入 /install 安装向导:环境检测 → 填写宝塔创建的 MySQL 信息(可点"测试连接"实时验证,也可选 SQLite 快速体验)→ 自行设置管理员账号密码 → 完成后自动锁定安装器。
第四步:域名 + HTTPS
- 宝塔 → 网站 → 添加站点(你的域名,纯静态)
- 站点设置 → 反向代理 → 目标URL
http://127.0.0.1:5000 - 站点设置 → SSL → Let's Encrypt 一键申请,开启强制 HTTPS
- 宝塔安全 + 云安全组放行 80 / 443
日常管理
# 方案B(systemd) systemctl restart|stop|status yulong-faka # 重启/停止/状态 journalctl -u yulong-faka -n 50 # 查看日志 # 方案A 在宝塔 Python项目管理器界面操作即可
系统配置
- 登录管理后台
/admin(账号密码为安装向导中你自行设置的) - 系统设置:站点名称、备案号、版权信息、平台费率、提现规则、注册审核开关
- 支付配置:选择支付通道并填写参数(见下方支付对接章节)
- 商户注册审核:可在系统设置中开启"注册需审核",保障入驻商户质量
商户管理
- 入驻流程:商户在官网提交注册 → 管理员后台审核通过 → 商户登录后台经营
- 风控操作:支持 冻结/解冻账户、关闭店铺、单独设置某商户费率
- 操作日志:商户关键操作全量留痕,后台可查
商品与分销
- 上架商品:设置售价/成本/起购量/介绍说明,批量导入卡密(格式:卡号----卡密,每行一条)
- 开启分销:编辑商品勾选"允许代理分销",设置代理价并关联到商品池,提交平台审核
- 对接分销:其他商户在"商品池"浏览已过审商品,一键对接后上架到自己店铺,买家下单时由源商户发货,差价自动分账
- 库存管理:卡密售出自动扣减,库存不足自动无法下单
订单与投诉
- 买家下单支付成功 → 自动发卡 → 买家可在订单页一键复制卡密
- 买家可通过 订单号 / 联系方式 随时查询订单
- 对订单有争议可发起投诉:三方(买家-商户-管理员)留言沟通,管理员可介入裁决并关闭投诉
资金与提现
- 每笔订单收入自动扣除平台手续费后进入商户余额,资金流水全程可查
- 商户申请提现(支付宝/微信/银行卡),金额进入冻结,管理员审核通过标记打款,拒绝则退回余额
- 提现手续费率与最低提现金额在 系统设置 中配置
授权后台(平台方专用)
授权体系使用独立后台,地址 /license/admin,默认账号 authadmin(首次登录后请立即改密)。与站点管理后台 /admin 完全分离、互不可见 —— 站点管理员(部署方)管理自己的发卡业务,授权后台仅平台方管理授权:
- 仪表盘:授权总数/有效/7天内到期/总收入统计与临期预警
- 授权域名:查看/搜索全部已授权域名,手动添加(线下客户)、编辑、一键续期(+30天/+1年)、禁用/删除
- 授权订单:全部授权订单流水与总收入统计
- 授权套餐:调整价格/天数/角标/排序,或新增套餐(如半年付)
配置支付总览
路径:管理后台 → 支付配置 → 支付通道设置。全站统一(商城订单与授权订单共用一个通道),四个通道随时可切换:
| 通道 | 适用人群 | 买家体验 | 所需资质 |
|---|---|---|---|
| 模拟支付 | 演示 / 内测 | 点击按钮即成功 | 无 |
| 易支付 | 个人站长(推荐) | 跳转网关,支付宝/微信/QQ钱包均可 | 易支付站点商户账号(个人可申请) |
| 支付宝当面付 | 企业/个体户 | 页面展示支付宝二维码 | 支付宝开放平台应用 + 当面付签约 |
| 微信Native | 企业/个体户 | 页面展示微信二维码 | 微信支付商户号 + Native产品 |
易支付(推荐,个人可用)
易支付是聚合支付协议,兼容市面绝大多数易支付站点(彩虹易支付等)。3 个参数即可完成对接:
第一步:申请商户
- 选择一个易支付服务商站点(自行甄别信誉,建议先小额测试)
- 注册商户账号,完成实名/签约(各站要求不同)
- 在商户后台获取 商户ID(PID) 与 商户密钥(KEY),记录网关地址(即该站点首页地址,如
https://pay.xxx.com)
第二步:填写配置
管理后台 → 支付配置 → 支付通道选择"易支付",填入:
| 字段 | 说明 | 示例 |
|---|---|---|
| 网关地址 | 易支付站点根地址,不带 /submit.php | https://pay.xxx.com |
| 商户ID | 商户后台的 PID | 1001 |
| 商户密钥 | 商户后台的 KEY | xxxxxxxxxxxxxxxx |
第三步:验证
- 保存后前台下一笔小额测试单,完成支付
- 回到订单页看到"已支付/卡密已发放"即回调正常(本系统下单时自动携带回调地址,无需在易支付后台单独设置)
支付宝当面付(官方)
第一步:开通资质
- 登录 支付宝开放平台,创建"网页/移动应用"
- 在产品中心签约当面付(需营业执照或个体户资质)
- 记录 APPID
第二步:配置密钥
- 下载支付宝官方"密钥生成器"(开放平台助手),生成 RSA2(2048位)密钥对
- 在开放平台"应用信息"中上传/填写应用公钥,平台会给出支付宝公钥
- 本系统需要填的是:应用私钥(你自己生成的)和支付宝公钥(平台给你的)——注意不要填成应用公钥
第三步:填写配置
管理后台 → 支付配置 → 选"支付宝当面付":APPID、应用私钥、支付宝公钥(网关地址留空即正式环境)。
微信Native支付(官方)
第一步:开通资质
- 申请 微信支付商户号(需营业执照)
- 在商户平台开通 Native支付 产品;关联一个 AppID(公众号/小程序/开放平台应用均可)
第二步:获取四项参数
| 参数 | 获取位置 |
|---|---|
| 商户号 mchid | 商户平台首页(1900 开头) |
| AppID | 已关联的公众号/小程序 AppID |
| APIv3密钥 | 商户平台 → 账户中心 → API安全 → 设置APIv3密钥(32位) |
| 证书序列号 + API私钥 | 账户中心 → API安全 → 申请API证书,下载证书文件:apiclient_cert.pem 内含序列号(或商户平台查看),apiclient_key.pem 即私钥 |
第三步:填写配置
管理后台 → 支付配置 → 选"微信Native支付",填入商户号、AppID、APIv3密钥、证书序列号、API私钥(粘贴 apiclient_key.pem 完整内容)。
支付常见问题
- 支付成功但订单一直待支付? 回调未送达。检查:域名是否公网可访问、是否 HTTPS、Nginx 是否转发了原始 Host 头、服务器防火墙。可重新支付一笔验证。
- 易支付提示"签名错误"? 检查商户密钥是否复制完整、网关地址末尾是否多了 /submit.php(不要带)。
- 支付宝提示"公钥格式错误"? 你可能填了应用公钥,应填"支付宝公钥"。
- 微信回调报"解密失败"? APIv3密钥不正确,或密钥含空格,重新设置后精确粘贴32位。
- 安全机制说明: 所有回调均做 签名验证 + 订单金额比对 + 幂等处理,伪造回调无法通过,重复通知不会重复发货。
商户API
为商户提供开放接口,用于对接自有站点或查询数据。API 密钥获取方式:商户后台 → 店铺设置 → API密钥(可重新生成)。
- 基础地址:你的站点域名,如
https://your-domain.com - 调用方式:均为 GET,返回 JSON
- 鉴权方式:通过 api_key 路径参数(仅 /api/merchant/ 接口需要)
接口列表
1. 订单查询
GET /api/order/{订单号}
返回订单状态、商品、金额、卡密列表(已支付订单)。无需鉴权,知道订单号即可查询,请妥善保管订单号。
2. 商品库存查询
GET /api/goods/{商品ID}/stock
返回指定商品的实时库存,适合对接前置页面。
3. 商户商品列表
GET /api/merchant/{你的API密钥}/goods
返回该商户全部商品(含价格、库存、状态),用于对接自有销售页。注意保密 API 密钥,泄露后请立即在商户后台重新生成。
FAQ
- 忘记管理员密码? 在服务器项目目录执行:venv/bin/python installer_init.py 新用户名 新密码(会重置管理员账号,数据不受影响)。商户密码由商户在登录页自助联系站点管理员处理。
- 如何备份数据? SQLite:备份项目目录下的
card_platform.db文件;MySQL(宝塔部署默认):宝塔面板-数据库-备份,建议设置每日自动备份计划。 - 如何升级系统? 推荐直接用安装包内
deploy/update.sh(自动备份数据与配置);或手动:备份数据 → 覆盖代码(保留 .env / install.lock)→ 重启服务。 - 演示数据怎么清理? 新版安装包已不内置演示账号;旧版升级后如仍残留演示商户,可在管理后台删除,升级重启后不会再自动生成;MySQL 部署如需彻底重来,可删除 install.lock 后重走安装向导(注意会重置管理员)。
- 支持二次开发吗? 支持授权可联系客服定制;自行修改代码导致的故障不在免费售后范围。