外卖返利系统PHP源码解析:三级分销与外卖平台返利开发指南

一、外卖返利系统核心架构解析

外卖返利小程序系统的技术架构以PHP为核心,采用MVC分层设计模式。前端通过微信小程序原生框架或uni-app实现跨平台兼容,后端基于Laravel或ThinkPHP框架构建API接口。数据库设计方面,MySQL作为主数据库存储用户信息、订单数据及返利记录,Redis用于缓存高频访问数据如用户返利明细。

系统核心模块包括:

  1. 用户管理模块:实现用户注册、登录、权限分级功能。通过OAuth2.0协议对接微信开放平台,支持手机号+验证码快速登录。用户等级体系采用RBAC模型,区分普通用户、分销商、超级管理员三级角色。
  2. 订单追踪模块:通过美团/饿了么开放平台API获取订单状态,使用定时任务(如Cron)每5分钟同步订单数据。订单状态变更时触发返利计算逻辑,确保返利金额实时更新。
  3. 返利计算引擎:根据用户等级和分销层级动态计算返利比例。例如:一级分销返5%,二级返3%,三级返2%。采用递归算法处理多级分销关系,确保返利金额准确分配。

二、三级分销机制的技术实现

三级分销系统的核心在于构建用户关系链。数据库表设计包含users(用户表)、distribution_relations(分销关系表)、commission_logs(佣金记录表)三个关键表。

分销关系建立流程

  1. // 用户B通过用户A的推广链接注册
  2. function establishDistribution($inviterId, $newUserId) {
  3. // 查询用户A的上级分销链
  4. $inviterChain = getDistributionChain($inviterId);
  5. // 构建三级分销关系
  6. $relations = [
  7. ['user_id' => $newUserId, 'parent_id' => $inviterId, 'level' => 1],
  8. ['user_id' => $newUserId, 'parent_id' => $inviterChain[0] ?? null, 'level' => 2],
  9. ['user_id' => $newUserId, 'parent_id' => $inviterChain[1] ?? null, 'level' => 3]
  10. ];
  11. // 批量插入分销关系
  12. DB::table('distribution_relations')->insert($relations);
  13. }

佣金计算逻辑
当用户完成外卖订单后,系统根据订单金额和分销层级计算佣金:

  1. function calculateCommission($orderAmount, $userId) {
  2. $relations = DB::table('distribution_relations')
  3. ->where('user_id', $userId)
  4. ->whereIn('level', [1,2,3])
  5. ->get();
  6. $commissionRate = [1 => 0.05, 2 => 0.03, 3 => 0.02]; // 分销比例配置
  7. $commissions = [];
  8. foreach ($relations as $relation) {
  9. $rate = $commissionRate[$relation->level] ?? 0;
  10. $amount = $orderAmount * $rate;
  11. $commissions[] = [
  12. 'user_id' => $relation->parent_id,
  13. 'amount' => $amount,
  14. 'level' => $relation->level
  15. ];
  16. // 记录佣金日志
  17. DB::table('commission_logs')->insert([
  18. 'user_id' => $relation->parent_id,
  19. 'order_id' => $orderId,
  20. 'amount' => $amount,
  21. 'created_at' => now()
  22. ]);
  23. }
  24. return $commissions;
  25. }

三、美团/饿了么API对接技术要点

对接外卖平台API需完成三个关键步骤:

  1. 平台授权:通过OAuth2.0协议获取平台access_token,美团开放平台要求每2小时刷新token。
  2. 订单同步:使用平台提供的订单查询接口(如美团的/api/v1/delivery/orders),通过订单号或时间范围获取订单数据。
  3. 数据映射:将平台返回的JSON数据转换为系统内部格式,重点处理以下字段:
    • order_id:平台订单号
    • actual_amount:实付金额
    • status:订单状态(待接单/配送中/已完成)
    • finish_time:完成时间

订单状态监听实现

  1. // 使用GuzzleHTTP发起API请求
  2. $client = new \GuzzleHttp\Client();
  3. $response = $client->request('GET', 'https://api.meituan.com/v1/orders', [
  4. 'headers' => [
  5. 'Authorization' => 'Bearer ' . $accessToken,
  6. 'Content-Type' => 'application/json'
  7. ],
  8. 'query' => [
  9. 'start_time' => strtotime('-7 days'),
  10. 'end_time' => time(),
  11. 'status' => 'COMPLETED'
  12. ]
  13. ]);
  14. $orders = json_decode($response->getBody(), true);
  15. foreach ($orders as $order) {
  16. // 检查订单是否已处理
  17. $exists = DB::table('external_orders')
  18. ->where('platform_order_id', $order['order_id'])
  19. ->exists();
  20. if (!$exists) {
  21. // 存储订单并触发返利计算
  22. storeOrderAndCalculateCommission($order);
  23. }
  24. }

四、公众号小程序开发实战

微信小程序开发需完成以下配置:

  1. 域名白名单:在微信公众平台配置业务域名、JS安全域名和下载域名。
  2. 支付对接:通过微信支付API实现佣金提现功能,需配置商户号、API密钥和证书。
  3. 模板消息:使用微信模板消息通知用户佣金到账,模板ID需在后台申请。

小程序页面开发示例

  1. // 订单列表页逻辑
  2. Page({
  3. data: {
  4. orders: [],
  5. commissionTotal: 0
  6. },
  7. onLoad() {
  8. wx.request({
  9. url: 'https://yourdomain.com/api/orders',
  10. method: 'GET',
  11. success: (res) => {
  12. this.setData({
  13. orders: res.data.orders,
  14. commissionTotal: res.data.totalCommission
  15. });
  16. }
  17. });
  18. },
  19. withdrawCommission() {
  20. wx.request({
  21. url: 'https://yourdomain.com/api/withdraw',
  22. method: 'POST',
  23. data: { amount: this.data.commissionTotal },
  24. success: () => {
  25. wx.showToast({ title: '提现成功' });
  26. }
  27. });
  28. }
  29. });

五、系统部署与优化建议

  1. 服务器配置:建议使用2核4G云服务器,Nginx+PHP-FPM环境,MySQL开启慢查询日志。
  2. 性能优化
    • 使用Redis缓存用户返利数据
    • 对高频查询添加数据库索引
    • 实施分表策略(如按用户ID哈希分表)
  3. 安全防护
    • 接口添加JWT鉴权
    • 敏感数据加密存储
    • 定期进行安全漏洞扫描

六、源代码获取与二次开发

获取完整PHP源代码需注意:

  1. 确认源代码包含完整的数据库脚本、API文档和部署指南
  2. 检查是否提供三级分销配置面板,支持自定义返利比例
  3. 验证是否包含美团/饿了么官方API对接示例

二次开发建议:

  1. 先在测试环境部署,使用Mock数据验证分销逻辑
  2. 逐步对接真实外卖平台API,建议先对接一个平台
  3. 开发管理员后台,实现佣金结算、用户管理等功能

该外卖返利系统通过PHP+MySQL的技术组合,实现了三级分销、外卖平台对接和微信生态整合的核心功能。开发者在获取源代码后,需重点关注分销关系链的构建逻辑、外卖平台API的对接规范以及微信小程序的支付集成。系统部署时建议采用容器化技术(如Docker)实现快速部署,并通过监控工具(如Prometheus+Grafana)保障系统稳定性。