微信商城小程序源码最新版|全开源UniApp完整包|前后端快速搭建商城

本文涉及的产品
PolarDB Agent Express,2核4GB
PolarDB Agent Flow,2核4GB
PolarSearch,搜索节点 4核8GB
简介: 这是一套基于UniApp(前端)+ SpringBoot(后端)的全开源微信商城小程序源码,无加密、可商用。涵盖商品管理、订单系统、微信支付、分销裂变、多商户入驻等完整电商功能,支持H5/小程序/APP多端编译。源码结构清晰,含前后端及后台管理系统,附详细部署指南与二次开发建议。

本文拆解的这套微信商城小程序源码,基于UniApp + SpringBoot前后端分离架构,,全开源无加密,覆盖商品管理、订单系统、支付对接、分销裂变、多商户入驻等完整电商能力。

源码:xcxyms.top

一、为什么选 UniApp 做商城小程序:一张图讲清底层逻辑

在众多小程序开发方案里(原生微信小程序、Taro、Remax、kbone…),UniApp + Vue 的组合之所以成为商城类项目的"事实主流",核心原因就三点:

维度 UniApp 的优势 对商城项目的意义
跨端编译 一套代码 → 微信小程序 / H5 / App / 支付宝小程序 / 钉钉… 商城天然有多端分发需求(公众号H5 + 小程序 + 未来App)
生态成熟度 基于 Vue 语法 + 微信小程序 API 映射,插件市场有大量现成组件(SKU面板、地址选择器、海报生成、虚拟列表) 商城页面复杂度高(商品详情SKU联动、购物车持久化、订单流),现成轮子=工期压缩
前后端解耦 UniApp 端只负责视图层 + 状态管理,通过 REST/GraphQL 调后端 API 商城真正的复杂度在后端:库存扣减、订单状态机、分布式锁、支付对账——前端不该碰这些

所以你拿到的"全开源 UniApp 商城完整包",本质上应该由 三大件 组成:

┌──────────────────┐
│          ① 后端服务(API Server)                  │
│  ThinkPHP 6 / SpringBoot / Node.js + MySQL + Redis  │
│  → 商品、订单、用户、支付、营销、权限              │
└──────────────────┘
                         ↕ REST/HTTPS
┌──────────────────┐
│          ② UniApp 前端(小程序端)                   │
│  pages/ 首页 分类 详情 购物车 订单 我的…            │
│  stores(Pinia/Vuex) + services(api封装)             │
└──────────────────┘
                         ↕ 编译
┌──────────────────┐
│          ③ 后台管理系统(Admin SPA)                 │
│  Vue + Element-UI / Element Plus                     │
│  → 商品上下架、订单发货、营销配置、数据看板         │
└──────────────────┘

7.png

二、源码目录结构拆解——看懂骨架,搭建才不会迷路

以主流的 UniApp + Vue3(或 Vue2)+ 后端 PHP/Java 前后端分离架构 为例,拿到源码包后你会看到类似这样的结构:

2.1 UniApp 前端目录(核心)

uni-mall/
├── pages/                  # 主包页面
│   ├── index/              # 首页(轮播 + 推荐 + 秒杀楼层)
│   ├── category/           # 分类页(多级分类树 + 筛选)
│   ├── goods/              # 商品详情(SKU选择 + 图文详情 + 收藏)
│   ├── cart/               # 购物车(本地+服务端双写)
│   ├── order/              # 订单流(确认订单 → 提交 → 支付 → 结果页)
│   ├── user/               # 个人中心(订单列表/售后/地址)
│   └── login/              # 登录(微信一键 / 手机号)
├── components/             # 全局组件
│   ├── sku-panel/          # SKU弹窗(规格联动核心)
│   ├── address-picker/     # 省市区四级联动
│   └── countdown/           # 秒杀倒计时
├── stores/                 # 状态管理
│   ├── cart.js             # 购物车 Store(Pinia 或 Vuex)
│   └── user.js             # 用户信息 & token
├── services/               # API 请求层
│   ├── goods.js            # 商品相关接口
│   ├── order.js            # 订单相关接口
│   └── user.js             # 登录/地址/收藏
├── utils/
│   ├── request.js          # axios/wx.request 封装(拦截器 + token注入 + 错误处理)
│   └── auth.js             # 登录态检测 & 静默登录
├── static/                 # 静态资源
├── config.js               # ★ 环境配置(apiUrl 填这里)
├── manifest.json           # AppID 配置(微信小程序)
├── pages.json              # 路由 + tabBar 配置
└── package.json

2.2 后端目录(以 ThinkPHP 6 / 经典 MVC 为例)

platform-api/
├── app/
│   ├── controller/
│   │   ├── api/            # 对外API(小程序调用的接口)
│   │   │   ├── Goods.php
│   │   │   ├── Order.php
│   │   │   ├── Pay.php
│   │   │   └── User.php
│   │   └── admin/          # 后台控制器
│   ├── model/              # ORM模型(Goods / Order / User...)
│   ├── service/             # 业务逻辑层(★ 核心:订单创建事务、库存扣减)
│   └── common/              # 工具(签名、加密、微信支付SDK)
├── config/                 # database.php / cache.php / 微信配置
├── public/                 # web入口(入口在 public/index.php)
├── runtime/                # 运行时(需写权限)
└── .env                    # 环境变量

读源码的第一准则:先找 config.js(前端)和 .env / config/database.php(后端)——这两个文件决定了你的源码能不能"活过来"。


6.jpg

三、环境准备清单(别跳过,80%的搭建失败都是环境不对)

3.1 前端侧(UniApp 编译环境)

工具 版本推荐 用途
HBuilderX 3.8+ UniApp 官方 IDE,编译/发行一键完成
Node.js 16.x LTS(推荐 18.x) 若你用 CLI 方式或 Vue3+Vite 分支
微信开发者工具 最新 stable 真机预览 + 上传审核
npm / pnpm pnpm 推荐 依赖安装

微信开发者工具安装后,必须打开「服务端口」:设置 → 安全 → 服务端口 → 开启。否则 HBuilderX 无法启动到小程序模拟器。

3.2 后端侧(以 LNMP / 宝塔 路线最常用)

PHP ≥ 7.4(推荐 8.0–8.2)  或   Java 8/11/17 + Maven
MySQL 5.7+  /  8.0
Redis 4.0+
Nginx 1.20+

PHP 必开扩展(缺一个就可能白屏):curlpdo_mysqlmbstringopensslfileinfo


四、逐步搭建:从"源码包"到"小程序跑通"

下面给你一条通用流程,覆盖市面上绝大多数 UniApp 商城开源包(不管是 PHP 系还是 Java 系,思路完全一致,只是第二步换命令)。

Step 1:后端先跑起来(API 必须可达)

A. 宝塔/PHP路线(最常见)

8.jpg

  1. 宝塔 → 网站 → 添加站点,域名填你准备的 API 域名(如 api.xxx.com
  2. 把后端代码上传到站点目录,确保 web 根目录指向 public/(不是根目录本身,否则配置泄露)
  3. 建数据库 → 导入 _sql/platform.sql(或源码包里的 install.sql)
  4. 改配置文件:
// .env 或 config/database.php 里
DB_HOST=127.0.0.1
DB_DATABASE=mall_db
DB_USERNAME=mall_user
DB_PASSWORD=your_pwd

// Redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=

// 微信配置(先占位,后面再填真实商户号)
WECHAT_APPID=你的小程序AppID
WECHAT_SECRET=你的小程序Secret
WECHAT_MCH_ID=
WECHAT_KEY=
  1. 给 runtime 目录写权限:
chown -R www:www /www/wwwroot/api.xxx.com/
chmod -R 755 /www/wwwroot/api.xxx.com/
  1. 访问 https://api.xxx.com/api/goods/list?page=1&limit=10,确认接口能返回 JSON。

B. SpringBoot 路线简述(如 youlai-mall 系)

# MySQL/Redis/Nacos 先跑起来
# 导入 document/sql/*.sql
# Nacos 里改 mysql & redis 连接
# IDEA → 依次启动:nacos → youlai-gateway → youlai-auth → mall-pms/oms/ums

访问 http://localhost:9999/doc.html 看 Swagger,接口通了再做前端。


Step 2:HBuilderX 导入 UniApp 前端 & 改 config.js

打开 HBuilderX → 文件 → 导入 → 从本地目录导入,选中 uni-mall/ 目录。

找到 config.js(有的项目在根目录,有的在 utils/config.js):

// config.js 示例
export default {
   
  // ★ 填你后端公网地址,结尾不要带斜杠
  apiUrl: 'https://api.xxx.com',
  // 小程序端 timeout
  timeout: 15000,
  // 存储键名
  tokenKey: 'uni_token',
}

关键检查项

  • apiUrl 必须是 https://(微信小程序强制 HTTPS,本地 127 调试除外)
  • 如果后端在开发阶段还没上 HTTPS,可以用微信开发者工具 → 详情 → 本地设置 → 不校验合法域名(仅开发阶段)

9.jpg

Step 3:绑 AppID + 跑起来

  1. manifest.json微信小程序配置 → 填你的小程序 AppID(在 https://mp.weixin.qq.com 注册并拿到)
  2. HBuilderX → 运行 → 运行到小程序模拟器 → 微信开发者工具
  3. 开发者工具里能看到首页 → 说明前端 ↔ 后端已经接通

Step 4:微信登录 & 支付对接(核心难点)

微信登录(小程序端最小流程)

// utils/auth.js
export function wxLogin() {
   
  return new Promise((resolve, reject) => {
   
    wx.login({
   
      success(res) {
   
        // res.code → 发给后端
        // 后端用 code + appid + secret → 调微信接口换 openid/session_key
        // 后端生成你自己的 JWT token → 返回给前端存进去
        resolve(res.code)
      },
      fail: reject
    })
  })
}

前端拿到后端返回的 token 后存 uni.setStorageSync('token', token),之后的所有请求在 request.js 拦截器里带上:

// utils/request.js
const baseURL = 'https://api.xxx.com'
export function request(options) {
   
  const token = uni.getStorageSync('token')
  return new Promise((resolve, reject) => {
   
    wx.request({
   
      url: baseURL + options.url,
      method: options.method || 'GET',
      data: options.data,
      header: {
   
        'Authorization': token ? `Bearer ${
     token}` : '',
        'Content-Type': 'application/json'
      },
      success(res) {
   
        if (res.statusCode === 401) {
   
          // token过期 → 触发重新登录
          return
        }
        resolve(res.data)
      },
      fail: reject
    })
  })
}

微信支付(下单闭环)

支付的关键不是"调起",而是后端生成 prepay_id 并签名返回,前端拿参数调 wx.requestPayment

// 提交订单成功后
wx.requestPayment({
   
  timeStamp: payData.timeStamp,
  nonceStr: payData.nonceStr,
  package: payData.package,       // 形如 prepay_id=xxx
  signType: 'RSA',                // 或 MD5,看微信支付V2/V3
  paySign: payData.paySign,
  success() {
   
    uni.navigateTo({
    url: '/pages/order/result?status=success' })
  }
})

⚠️ 后端回调地址 notify_url 必须是公网 HTTPS 可达的,且验签失败时绝对不能落盘成功状态——这是支付安全的生死线。


五、数据库核心表设计(理解这个,二次开发就通了一半)

商城的灵魂不在页面,在数据模型。下面是核心表的最小集合:

-- 商品
goods (id, spu_name, price, stock, category_id, album_json, detail_html, status)

-- SKU(多规格商品的核心)
goods_sku (id, goods_id, sku_json, price, stock, sku_code)

-- 购物车(支持游客临时cart + 登录后merge)
cart (id, user_id/null, sku_id, quantity, checked)

-- 订单
orders (
  id, order_no, user_id, total_amount, pay_amount,
  status,           -- 0待付 1已付 2发货 3完成 4关闭
  address_snapshot_json,
  created_at
)

-- 订单明细
order_items (id, order_id, sku_id, qty, price_unit)

-- 用户
users (id, openid, nickname, avatar, phone)

二次开发时的第一刀,通常切在 goods_sku.stock 的扣减策略上:

  • 方案A(简单):下单时直接 UPDATE sku SET stock = stock - qty WHERE stock >= qty。适合小规模。
  • 方案B(生产):Redis 预扣库存 + 数据库最终一致 + 订单超时自动回滚。高并发必走这条。

六、性能优化:别让商城"能跑"就行

6.1 UniApp 分包加载(防止主包超限 2MB)

// pages.json
{
   
  "subPackages": [
    {
   
      "root": "pages-sub/order",
      "pages": ["list", "detail", "result"]
    }
  ],
  "preloadRule": {
   
    "pages/index/index": {
   
      "packages": []
    }
  }
}

6.2 后端缓存策略

商品详情页:Redis KV 缓存(TTL 300s,后台编辑商品时主动 del)
首页楼层:预生成 JSON 快照存 Redis,避免每次实时 JOIN
用户会话:Redis / JWT 无状态(推荐 JWT + 短期有效 + refresh机制)

6.3 图片资源

所有商品图走对象存储(COS / OSS / MinIO),别直接放服务器磁盘。CDN + WebP 自适应能让首屏加载差出一个量级。


七、上线前的安全加固清单

☑  config.js 里的 apiUrl 必须是 HTTPS
☑  后端 .env 文件不能在 web 可访问目录(PHP项目尤其注意)
☑  支付 notify_url 做签名校验 + 幂等(同一 transaction_id 不重复入账)
☑  订单金额后端二次计算,不能相信前端传来的 pay_amount
☑  后台管理端改默认路径(别留 /admin 裸奔)
☑  SQL 入参用 ORM 预编译 / PreparedStatement(防注入)
☑  微信 secret / 商户 key 不要硬编码在前端
☑  小程序 request 合法域名列表在公众平台配置白名单

八、常见"搭不起来"的排错路线图

10.jpg

症状 优先排查
HBuilderX 运行后白屏 manifest.json 的 AppID 是否为空;config.js 的 apiUrl 是否填错
接口报 404 后端入口是否在 public/,Nginx try_files 规则是否正确
微信登录 code→openid 失败 appid/secret 填反了?用的是测试号而非正式号?
支付能调起但 notify 不回调 notify_url 是否内网?是否 HTTPS?防火墙 443 开了没?
上传小程序提示"包过大" 没做分包;static 里塞了原图 → 移出去走 CDN

如果你愿意,下一步我可以按你手头具体源码的技术栈(比如是 ThinkPHP6 系 / SpringBoot 系 / Node系?前端是 Vue2 还是 Vue3+Pinia?)给你做精确到文件级的二次开发路线图——包括 SKU 引擎重写、库存预扣 Lua 脚本、订单状态机流转表和支付对账 Cron 的完整代码骨架。只要贴出你源码的根目录截图或 package.json / composer.json 即可。

相关文章
|
15天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5800 29
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1168 2
|
7天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
944 1
|
17天前
|
人工智能 自然语言处理 供应链
|
8天前
|
人工智能 弹性计算 安全
阿里云618活动时间、活动入口、优惠活动详细解读
2026年阿里云618创新加速季已全面开启,作为年度力度最大的云产品促销活动,本次大促覆盖轻量应用服务器、ECS云服务器、GPU云服务器、数据库、AI算力、安全服务、CDN等全品类产品,推出5亿元算力补贴、新用户限时秒杀、普惠满减、企业专享、免费试用、云大使返佣等多重福利,个人开发者、中小企业、AI团队均可享受专属低价。本文将系统梳理2026年阿里云618活动的完整时间节点、官方参与入口、各类优惠细则、使用规则、热门产品推荐及实操代码,帮助用户精准参与、高效省钱,以最低成本完成上云部署。
737 4
|
23天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3831 15
|
8天前
|
运维
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
1425 0

热门文章

最新文章