ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

智能AI名片源码详解:PHP+小程序实现获客与代理分佣

智能AI名片源码详解:PHP+小程序实现获客与代理分佣 简介这是一套基于PHP开发的智能AI名片系统高级代理版源码面向需要商业化部署名片管理、客户追踪与微信生态推广的代理商或企业用户。系统集成AI识别、数据分析和客户管理能力并预置addons插件扩展目录与wxapp微信小程序代码便于在微信内快速生成名片并分享裂变。压缩包整体约41.19MB核心代码以PHP为主辅以小程序前端内容目录结构包含扩展模块和微信应用适合具备一定PHP基础的技术人员二次开发。目前已有152人学习下载。该版本提供可商用的完整源码支持多级分销、代理管理及个性化定制购买者可自由修改部署用于构建私域流量运营工具或对外提供企业服务同时需注意数据合规与安全更新。1. 从纸质名片到小程序获客入口这套智能AI名片源码做了什么销售团队最头疼的一件事是名片发出去之后再也没有下文。客户当场扫码加了微信后续跟进靠业务员手工记主管拿不到任何反馈。这套基于 PHP 的智能 AI 名片系统把这件事变成了一条能自动运转的链路业务员分享出去的是一个微信小程序名片客户点开就能看产品、看案例、直接发起对话后台自动记录谁看过、看了几次、在哪个页面停留最久主管按时间维度拉出访客明细判断哪些线索应该重点跟进。而对开发者来说取舍点在于它把「名片展示 访客留痕 AI 助理 代理分佣」打包在了一份可二次开发的源码里高级代理版还额外把代理等级和收益统计做成了后台可配置模块。不管你是要给自己企业搭获客工具还是准备接第三方客户做名片 SaaS 交付这套 5.99.5 版本都值得先拆一遍源码再决定怎么用。2. 拆解 ai_card 源码addons 插件机制与名片数据模型拿到 zip 包之后先别急着解压上传。真正理解这套系统需要先从目录结构判断它的技术底座再顺着数据表把名片业务闭环串起来。2.1 addons 与 wxapp 在代码里承担的角色解压后根目录通常长这样ai_card/ ├── addons/ # 插件目录后台可独立安装/卸载 ├── application/ # PHP 业务代码控制器与逻辑层 ├── wxapp/ # 微信小程序前端源码 ├── public/ # Web 可访问根目录 │ ├── index.php # 入口文件 │ └── install.php # 安装向导 ├── config/ # 数据库、缓存等全局配置 ├── runtime/ # 运行时缓存、日志 └── data/ # SQL 安装脚本与备份从addons目录的命名与结构来看这套系统走的是 ThinkPHP 生态里常见的插件化后台设计。判断依据有三点插件目录独立于application主代码、每个插件自带配置与安装脚本、后台菜单由插件注册生成。这是国内 PHP 后台系统的成熟套路好处是核心代码和扩展功能隔离代理体系、AI 助理、短信服务这些功能都可以拆成独立插件来维护。wxapp目录是微信小程序端里面如果直接能看到app.js、pages/、project.config.json就是原生小程序工程如果根目录出现manifest.json和main.js那则是 uni-app 工程需要先构建再导入。拿到包先按这个规则判断能省掉后面部署时最无谓的半小时。2.2 名片、访客与分佣的数据表关系从业务语义上看这套系统的核心表可以归纳为五类。不同批次打包的表名前缀可能有差异比如fa_或者lbbg_但不影响对业务模型的理解数据表职责关键字段member / user 表后台用户、代理账号id、agent_level、referrer_idcard 名片表业务员创建的名片页id、user_id、content、qrcodecard_visit 访客记录名片被打开、浏览的行为轨迹id、card_id、visitor_id、create_timeorder 订单表代理进货、客户付费id、user_id、pay_amount、is_settlecommission_log 佣金流水分佣结果记录id、order_id、agent_id、amount这几张表串起来就是整个业务的闭环member表里的referrer_id存储上下级推荐关系名片属于某个member访客打开名片时写入card_visit客户如果下单则按照agent_level计算佣金并写入commission_log。你后面做二次开发或者排查分佣问题90% 的场景都会落在这五张表上。2.3 AI 能力在这一版里怎么组织所谓智能 AI 名片实际落地通常不是本地跑模型而是通过接口方式接入大模型能力。这一版比较常见的功能布局是两个模块名片页上的 AI 助理对话以及根据访客行为自动打分的意向判断。前者解决客户咨询响应速度后者给销售做线索优先级排序本质上就是现在各路 AI 大模型应用里最常见的轻量 AI agent 形态。AI 助理的实现逻辑一般是这样用户在小程序里提问后端把问题带上角色设定提示词转发给大模型接口再把返回结果存一份到对话记录表。关键配置项通常在后台插件参数里需要填模型接口地址、API Key、模型名称和温度参数。如果你有自己的私有化大模型也可以在插件里替换掉默认的请求类保持方法签名不变即可。这个版本的好处是插件层已经隔离好了改动不会污染主流程。3. PHP 部署与初始化环境校验、伪静态规则与数据库导入部署这套系统的难度不大真正的坑集中在 zip 包传输不完整、PHP 扩展缺失、伪静态规则没配这三个地方。按下面的顺序走能省掉大部分排查成本。3.1 环境校验与 zip 包完整性检查先确认服务器 PHP 环境满足常见运行要求。这套系统基于 PHP 开发常见运行环境是 PHP 7.3/7.4 加 MySQL 5.7/8.0需要fileinfo、curl、openssl、gd这几个扩展。命令行确认php -v php -m | grep -E fileinfo|curl|openssl|gd第一行检查版本第二行把关键扩展一次性列出来。缺哪个就在面板里装哪个比如 Ubuntu 下apt install php7.4-curl这类操作或者直接在宝塔软件商店里重新编译安装 PHP 并勾选扩展。注意fileinfo这个扩展经常被精简安装漏掉而它恰恰是系统上传头像和检测文件类型时依赖的。接下来做 zip 包完整性校验。从网上下载的压缩包如果在传输中被截断解压时会报Invalid zip archive: could not find EOCD或者error read zip archive之类错误。用下面的命令先验证unzip -t 龙兵智能AI名片高级代理版5.99.5.zip | tail -20-t参数只做测试不实际解压末尾显示No errors detected代表包完整。本地推荐先用 7-Zip 打开包先看看addons、wxapp、application三个关键目录是否齐全再上传到服务器。直接在面板上在线解压大 zip 包超时或内存限制会导致文件缺一半这种半成品比报错更难排查。3.2 Nginx 伪静态与运行目录设置系统前端入口在public目录所以站点运行目录必须指向public不能指向项目根目录否则会暴露application和data下的敏感文件。Nginx 环境下伪静态规则按 ThinkPHP 系的标准写法来location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s$1 last; } }这段配置的含义是当请求的文件或目录在磁盘上不存在时把请求交给index.php解析路径参数通过s$1传递。last标签让重写流程终止避免多重循环重写。如果是 Apache 环境则在public目录下放.htaccessRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?s$1 [QSA,PT,L]QSA表示保留原有查询参数PT把重写结果交给下一步处理L是最后一条规则。配完伪静态一定要访问一个真实页面验证如果出现路由 404 而不是框架报错多半是重写规则没生效。3.3 数据库初始化与配置文件参数安装向导一般通过http://你的域名/install.php访问跟着步骤填数据库信息即可。但如果你习惯手动初始化可以先把data目录下的安装 SQL 导入mysql -uroot -p ai_card data/install.sql这里ai_card是提前建好的空库名install.sql会自动建表并写入默认后台账号。导入完成后确认配置文件的数据库连接参数。这套系统的配置文件可能是根目录.env文件也可能是config/database.php取决于打包版本。常见.env配置如下APP_DEBUG false DB_HOST 127.0.0.1 DB_NAME ai_card DB_USER your_db_user DB_PASSWORD your_password DB_PORT 3306DB_HOST不建议写成localhost以外的主机名避免 PHP 走 socket 还是走 TCP 的歧义APP_DEBUG上线前必须为false否则异常堆栈会暴露物理路径和数据库结构给前端。配置改完顺手确认runtime和public/uploads目录可写chown -R www:www /www/wwwroot/ai_card chmod -R 777 /www/wwwroot/ai_card/runtime chmod -R 777 /www/wwwroot/ai_card/public/uploadsruntime不可写时系统会白屏或者缓存写入报错uploads不可写时名片图片无法上传这两个目录是部署最常见的问题源。3.4 安装向导与上线前收尾通过安装向导部署时检测通过后会引导配置admin账号和数据库。安装完成后有一个动作不能省把install.php改名或直接移除防止别人通过安装脚本重置你的站点mv public/install.php public/install.php.bak提示这一步应在站点正式对外访问之前完成安装脚本残留是这类 PHP 系统被扫库撞库的重灾区。安装完成后进入后台先改默认管理员密码再把站点 URL 和上传域名配置成自己的。如果后台出现验证码加载不出来优先检查runtime缓存目录权限和 GD 扩展是否启用这两个原因覆盖了绝大多数验证码异常。4. 高级代理版实战分佣链路跑通与微信小程序端对接高级代理版与普通版的差异从后台菜单就能看出来代理等级、分佣比例、收益统计。这意味着它不是简单加一张表而是把分销体系嵌入了订单、用户和名片三个模块。这一章重点拆分佣逻辑和小程序对接步骤。4.1 代理等级与分佣逻辑常见的代理模型是把代理分为普通代理、黄金代理、城市合伙人几个等级每个等级在后台配置不同的进货价和分佣比例。客户通过某代理分享的名片下单后系统会沿referrer_id关系链向上返佣整个计算逻辑简洁地表达为下面这段伪代码if ($order[status] paid) { $referrer get_user($order[referrer_id]); if ($referrer !settle_exists($order[id], $referrer[id])) { $rate get_rate_by_level($referrer[agent_level]); $commission round($order[pay_amount] * $rate / 100, 2); create_commission_log( $order[id], $referrer[id], $commission ); } }这段逻辑有几个关键点。第一分佣触发条件必须限定订单状态为paid未支付订单不入账第二通过settle_exists判断是否已结算对应的表结构里通常会有order_id agent_id的唯一索引防止回调重复触发造成重复返佣第三返佣比例从代理等级映射表中读取改比例只能影响新订单不应影响已生成的流水。实际部署中如果发现佣金没到账先别急着怀疑代码按这个顺序检查订单回调是否真正执行到了这一段、referrer_id是否写入、代理等级是否有效。多数分佣漏记问题都出在支付回调的前置校验上比如签名验证失败导致回调提前退出。4.2 微信小程序端对接服务端wxapp目录要用微信开发者工具打开导入时填自己的 AppID然后改前端接口配置。常见做法是把接口地址集中放在一个config.js里module.exports { baseUrl: https://api.yourdomain.com/index.php, version: 5.99.5 }改完baseUrl后必须在微信公众平台配置服务器域名否则真机预览会直接报url not in domain list配置项填写的值说明request 合法域名https://api.yourdomain.com所有接口请求uploadFile 合法域名https://api.yourdomain.com名片头像上传downloadFile 合法域名https://api.yourdomain.com下载小程序码、素材开发调试时可以在微信开发者工具里勾选「不校验合法域名」但正式上线必须完成域名备案和 HTTPS 配置。这里的yourdomain.com的证书需要覆盖到接口域名建议直接用宝塔的 Lets Encrypt 免费证书三个月自动续期省心。4.3 名片分享与上下级关系绑定代理体系成立的先决条件是新用户必须能正确归属到某个代理名下。实现方式通常是小程序码扫码进入时携带代理标识。打开小程序时从scene参数解析// pages/card/card.js onLoad(options) { const referrerId options.scene ? decodeURIComponent(options.scene).split()[1] : options.referrer_id if (referrerId) { wx.setStorageSync(referrer_id, referrerId) } }scene是微信小程序码扫码进入时固定使用的参数名通常是一段拼接字符串比如ref10086所以要先解码再按分隔符取代理 ID普通链接分享则直接通过referrer_id传递。拿到 ID 后写入本地缓存首次授权手机号注册时随提交参数一起发给后端落库。比较容易被忽略的一点是必须在用户授权手机号之前就把referrer_id存到本地如果先走注册再绑定会丢失首次来源归属。建议服务端在创建用户成功后用同一个参数再更新一次member.referrer_id形成双保险。5. 验证代理链路与上线前的几个小动作部署完成不等于上线合格。这个版本的分佣链路、小程序对接和后台上传功能值得花半小时做一次完整验证。用一个业务账号在后台开一个代理等级设置分佣比例为 20%。再用另一个手机号注册为普通用户模拟打开代理分享的名片并下一单订单状态改为已支付然后直接查数据库SELECT o.id AS order_id, o.pay_amount, c.agent_id, c.amount FROM ord AS o LEFT JOIN commission_log AS c ON c.order_id o.id WHERE o.create_time 2025-01-01 00:00:00 ORDER BY o.id DESC LIMIT 10;这条 SQL 把订单和佣金流水连起来一眼就能看出每个已支付订单有没有对应的佣金记录。如果订单存在但佣金为空检查 4.1 节提到的回调执行顺序如果agent_id是 0问题出在上下级绑定回到小程序端看referrer_id是否成功写入。上线前还应做两个加固动作。第一禁止uploads目录执行 PHP 脚本防止上传图片马直接 getshell在 Nginx 站点配置里加一段location ~* /uploads/.*\.(php|php5|phtml)$ { deny all; }第二确认runtime日志目录写权限正常排查问题时直接盯日志尾行tail -f /www/wwwroot/ai_card/runtime/log/$(date %Y%m).log最后说一个容易被商业交付项目忽略的点源码标注可商用但二次分发前有必要把composer依赖和addons插件里的开源协议过一遍特别是 GPL 协议的组件一旦混入闭源分发会把整个项目拖入开源传染的合规风险。手机号等客户敏感字段建议在数据库层做脱敏存储只保留前三后四位用于展示短信通知用模板变量替换这样即使备份文件泄露核心数据也不会直接裸奔。本文还有配套的精品资源点击获取
返回列表