微信商城
部署与运营操作手册
给第一次配置服务器的 DWZ 经营者。按顺序执行,每一阶段都有明确的完成标志。
01 / 你得到的系统
首期按你已确认的范围开发:已有公司小程序账号、支付商户号和备案域名;面向中国大陆,人民币结算,快递发货;会员提供资料、等级和积分,不做储值。
| 组成 | 作用 | 在哪里 |
|---|---|---|
| 原生微信小程序 | 商品、规格、购物袋、结算、支付、订单、售后、会员、客服、隐私授权 | miniapp/,在微信开发者工具导入 |
| 运营后台 | 上传图片、多规格和价格、品牌页头和会员卡、首页活动、订单售后、会员、客服工单、同步异常、账号权限 | 运行后访问 /admin |
| 商城服务与数据库 | 服务端定价、事务库存、会话权限、支付验签、积分流水、ERP队列与读回 | src/、持久数据 data/ |
| 网页预览 | 方便经营者在电脑上操作演示流程,与后台使用同一数据 | 本地 /preview;正式环境关闭 |
| 部署工具 | Docker编排、HTTPS、配置生成、备份检查、小程序配置及预检 | compose.yaml、deploy/、scripts/ |
02 / 先在自己的电脑上体验
- 打开
DWZ/dwz-commerce文件夹,双击 启动DWZ商城.command。首次可能需要在系统设置中允许你明确检查过的本地脚本运行。脚本启动后,请保留终端窗口。 - 浏览器打开 本地入口。选择“体验商城”或“管理后台”。这里的
127.0.0.1代表当前电脑,不是公网服务器地址。 - 仅本地默认账号为
admin,默认演示密码为DWZ-local-demo-2026!。生产配置工具会另外生成随机长密码,禁止沿用本地密码。 - 商城中选择演示商品→加入购物袋→前往结算→填写测试信息→提交订单→模拟支付。后台“订单与售后”会看到同一订单。
- 后台打开该订单→填写演示物流单号→提交演示发货。商城订单刷新后确认演示收货。若要验证积分,先在后台“商城设置”开启赠送积分,再新建订单;已有订单保留原积分比例。
- 在商城“我的”查看订单、会员等级、积分;“咨询与售后”提交测试工单。后台客服工作台回复后,商城刷新工单即可看到回复。
完成标志:你能在商城创建订单,并在后台查看、发货;客服能双向回复。这里不会扣真实微信款项,也不会生成真实吉客云单据。
关闭终端窗口或按 Ctrl+C 可停止本地服务。再次启动会保留本地数据。请不要把本地 data/ 复制到正式环境;正式环境从空库建立真实商品与账号。
技术人员本地运行
node scripts/init-env.mjs
node --env-file=.env src/server.mjs
# 另开终端进行检查
node scripts/check.mjs
node --test --test-concurrency=1 tests/*.test.mjs需要Node.js 24。本机Codex已有可用运行时,启动脚本会自动寻找;换到其他电脑时请安装对应版本。
03 / 开发前已经核对的微信规则
| 规则 | 本项目的对应做法 | 上线时你要做的事 |
|---|---|---|
| 通讯域名需预配置,HTTPS及有效证书,不能把AppSecret放客户端 | 小程序只请求商城API,微信服务由后台调用 | 配置request/downloadFile合法域名;域名指向服务器,保持证书有效 |
| 微信登录code由服务端换取身份,session_key不得下发 | 后端换取OpenID,自建有效期会话 | 核对真实AppID和AppSecret归属;真机验证登录 |
| 处理个人信息应声明用途并进行所需授权 | 主动登录与下单同意,手机号隐私授权组件,保留政策版本与同意记录 | 公众平台声明与后台正文保持一致,披露ERP和物流的必要处理 |
| 支付由服务端下单、验签并查询最终状态 | APIv3签名、通知验签解密、商户/币种/金额/用户检查,查单与关单 | 绑定商户与AppID,私密配置密钥,验证支付和退款 |
| 交易类小程序按适用要求接入发货管理 | ERP发货→微信录入;官方收货组件后再查状态 | 核对发货管理开通状态、物流编码与结算流程 |
| 原生客服使用微信指定入口 | open-type="contact",另有商城工单 | 公众平台添加客服人员,验证接待 |
| 类目、认证、小程序备案与代码审核需完整 | 商家政策与备案可配置,不伪造资质 | 域名备案不等于小程序备案;按实际商品核对类目 |
官方来源见末尾。开发者工具临时跳过域名检查只适合开发;真机和上线验收须正常校验。支付使用官方仍支持的普通商户共享下单接口,不擅自切换未对该商户开放的新能力。
04 / 系统如何连接,数据以谁为准
员工使用浏览器后台,顾客无需接触后台。服务器全天运行,因此关掉你的电脑不会影响已部署商城。
| 数据 | 主要来源 | 原则 |
|---|---|---|
| 商品图文、售价、上架 | 商城后台 | SKU映射真实ERP货品、规格、条码;编码保留前导零 |
| 收款与退款最终结果 | 微信支付 | 前端提示不作为凭证;重复通知不重复扣库存、推单或记积分 |
| 分仓库存、实际发货 | 指定ERP仓库与店铺 | 本地额度与ERP快照取保守上限;快照超120秒暂停该SKU销售 |
| 订单 | 商城网店订单号 + ERP销售单号 | 已支付才推单;查重、读回;未知结果先查单,不盲目重建 |
| 会员 | 商城编号 + ERP客户ID | 独立编号映射,不按手机号直接合并;等级使用明确ID映射 |
| 积分 | 商城流水为本期拟采用主账,ERP保留确认值 | 完成赠送、退款撤回;绝对余额更新仅限确认单写方范围 |
crm.customer.edit 可改绝对积分余额,不能据此声称支持并发安全的跨渠道增减。多个系统改同一会员积分时,先约定主账与原子更新/幂等机制;本项目默认关闭积分写入。首版为单服务器、单Node进程、SQLite WAL架构,适合先验证独立商城流程;未经负载测试不承诺高并发。没有实现RDS切换、多实例或多仓分批发货。大规模投放前需要容量测试并评估数据库迁移。
05 / 上线前整理资料
你已有关键账号,先核实状态和归属。密钥仅在公司认可的密码管理器、服务器密钥目录或安全配置界面录入。
| 资料 | 找谁 / 去哪里 | 完成标志 |
|---|---|---|
| 小程序AppID、主体、认证、小程序备案 | 公众平台→设置/基本设置、备案 | 主体正确、认证有效、备案通过、管理员能扫码 |
| 商户号、AppID绑定、商户API序列号/私钥、APIv3密钥、微信验签公钥ID/文件 | 商户平台→产品中心/开发配置、账户中心/API安全 | 同一商户授权,私钥不发聊天 |
| 域名与DNS权限、网站备案归属 | 域名与备案负责人 | 能增加api子域;换接入商核实接入备案 |
| ERP企业、店铺ID/名、仓库编码/名、应用订阅 | 吉客云管理员/客户经理 | 一个已知SKU/订单完成限定范围只读核对 |
| 等级ID、积分规则与唯一写入方 | 运营 + 吉客云实施 | 确认主账、门槛、跨渠道规则 |
| 正式商品、客服及政策 | 商品、仓库、客服负责人 | 图文价格与库存核实;服务、售后、开票、隐私声明一致 |
06 / 购买阿里云服务器
步骤1:选账号与地域
- 使用公司拥有的阿里云账号,完成企业实名,开启MFA,保留公司管理员,避免唯一所有权落在外包个人账号。
- “云服务器ECS”→创建实例。按主营用户与运营地点选择中国大陆地域,例如杭州或上海;应用与备份资源统一规划。
- 起步可用 2核CPU / 4GiB内存 / 80GiB ESSD系统盘,按商品图片和实测压力调整。这是工程起步估算,不是官方性能承诺。
- 选择 Ubuntu 24.04 LTS、x86_64,分配公网IPv4或EIP;Linux版吉客云CLI须同架构。
- 购买页逐项核对实例、系统盘、公网带宽/流量、备份费用;以当天控制台报价为准,不采用固定促销价。先验证实际负载再决定长期配置。
步骤2:安全组与登录
| 端口 | 来源 | 用途 |
|---|---|---|
| 80/TCP | 公网 | 跳转与证书验证 |
| 443/TCP | 公网 | 小程序API、支付通知、后台HTTPS |
| 22/TCP | 管理员固定公网IP,或用WorkBench/云助手 | 维护,不长期对所有公网开放 |
| 8787与数据库端口 | 不对公网开放 | Docker私网由Caddy转发 |
采用密钥对登录,为维护人员分配明确权限。443需给顾客访问,后台另用办公室IP白名单限制。参见阿里云安全组说明。
完成标志:实例运行、公网地址已记录,WorkBench或SSH可登录,权限在公司控制内。
07 / 上传程序、域名与HTTPS
步骤3:安装Docker
按阿里云Docker与Compose安装指引选择Ubuntu页签逐条执行,不混用其他发行版命令。完成后检查:
docker --version
docker compose version两条均返回版本才继续。
步骤4:上传代码包
本机项目运行 node scripts/package.mjs,通过WorkBench上传或受控SFTP把不含数据/密钥的压缩包传到服务器,例如/tmp目录。服务器执行:
sudo mkdir -p /opt/dwz-commerce
sudo chown "$USER":"$USER" /opt/dwz-commerce
cd /opt/dwz-commerce
tar -xzf /tmp/DWZ商城源代码_2026-10-16.tar.gz
mkdir -p data backups secrets/wechat secrets/jky tools
sudo chown -R 1000:1000 data backups secrets/wechat secrets/jky
chmod 700 data backups secrets secrets/wechat secrets/jky下文服务器命令均在 /opt/dwz-commerce 执行;不上传本地演示数据。
步骤5:添加域名解析
- 现有DNS控制台→添加A记录,主机记录api,值为ECS公网IPv4。例如拥有example.com,得到api.example.com;这是格式示例。
- 核对已有AAAA记录是否真能访问正确IPv6,避免部分手机访问错误地址。
- 核对备案主体及接入服务商,按备案控制台确认是否需接入备案。小程序备案在公众平台单独核实。
步骤6:生成正式配置
使用临时Node容器生成.env,将示例域名替换为你拥有的真实域名:
docker run --rm -u "$(id -u):$(id -g)" -v "$PWD:/work" -w /work \
node:24-bookworm-slim node scripts/init-env.mjs --production --domain api.example.com用安全编辑器打开.env。随机后台密码与数据密钥只存入权限600文件,不会打印。数据密钥需独立备份;后续不得重新生成,否则旧收货信息和客服正文无法解密。
| 配置 | 填写 |
|---|---|
| PUBLIC_DOMAIN | 仅域名,不带协议或路径 |
| PUBLIC_ORIGIN | 同域名完整HTTPS地址,不带末尾斜杠 |
| ADMIN_ALLOWED_CIDRS | 办公室公网IP加/32;多个CIDR用空格分隔并保持引号。文档示例203.0.113.10/32须替换 |
| CHECKOUT_ENABLED | 初期false,限定体验联调阶段再开启 |
| WECHAT_MODE / JKY_MODE | WECHAT_MODE=live;首次基础部署 JKY_MODE=disabled,ERP 联调阶段再切换 live;不复制模拟配置 |
| JKY_WRITES_ENABLED | 初期false,先限定范围只读核对 |
修改ADMIN_PASSWORD只影响空库首次建账号;已有后台账号改密需专用重置脚本。
首次生产配置会设置 SMS_MODE=disabled、TRUSTED_PROXY=true,并关闭官网/App 支付。仅在使用随项目的 Caddy 且后端不对公网开放时信任代理。基础部署检查使用 docker compose exec api node scripts/preflight.mjs --stage infrastructure;完整业务配置检查仍使用默认 preflight,按各端进度联调。
步骤7:启动HTTPS服务
docker compose build
docker compose up -d
docker compose ps
docker compose logs --tail=50 api
docker compose logs --tail=50 webCaddy在DNS正确且80/443可达时申请续期证书。访问 https://API域名/healthz 应显示 {"ok":true};办公室IP访问/admin有登录页,其他IP受限。证书失败查DNS、安全组、CAA及Caddy日志。
08 / 微信登录、支付及原生小程序
步骤8:私密配置凭证
- 管理员核对小程序AppID,将AppSecret私密写入.env的WECHAT_APP_SECRET。
- 商户管理员核对AppID绑定与支付权限,填WECHAT_MCH_ID、WECHAT_MCH_SERIAL和32字节WECHAT_API_V3_KEY。
- 商户私钥放
secrets/wechat/apiclient_key.pem;微信验签公钥放secrets/wechat/wechatpay_public_key.pem,对应ID填WECHAT_PAY_PUBLIC_KEY_ID。也可用已核实的当前平台证书及序列号,必须与文件一致,不能拿商户证书当微信验签公钥。 - 私钥由运行用户1000可读,权限400/600,只读挂载;禁止放public、miniapp、Git或交付包。
- 支付通知为
/api/hooks/wechat/pay,退款通知为/api/hooks/wechat/refund,程序随请求提交完整HTTPS地址,公网不得加后台IP限制。 - 本实现固定一个微信验签标识。轮换时安排维护窗口,核对新公钥和ID、重启并补查期间订单;当前无自动证书轮换器。
步骤9:公众平台配置
“小程序后台→开发→开发管理/开发设置→服务器域名”加入API域名到request和downloadFile。当前商品图使用同域名;浏览器后台上传不要求顾客侧uploadFile。以后改OSS/CDN需同步配置和验证。
隐私指引按真实情况声明:微信身份、会员昵称、主动授权手机号、收货姓名/电话/地址、订单和咨询;说明用途、公司联系渠道及吉客云/承运方处理必要履约信息。手填地址同样是个人信息,不能因未调用微信地址接口就漏声明。
步骤10:导入微信开发者工具
# 本地源码目录,仅填写公开信息
node scripts/configure-miniapp.mjs --appid wx真实AppID --api https://api.你的域名- 从微信官方入口安装开发者工具,用有开发权限的微信号登录。
- 导入
dwz-commerce/miniapp,核对真实AppID,小程序模式。 - 保持域名检查开启,编译并查看控制台。默认api.example.invalid不能连接,必须先配置。
- 真机预览至少覆盖iOS、Android,测试隐私同意/拒绝、登录、图片、支付取消/成功、收货、客服和工单。
已提供12页及隐私组件,目前仅通过代码结构与JS语法检查,未完成微信开发者工具编译及真机验收,网页预览不能替代它们。
09 / 吉客云ERP、会员与积分
步骤11:限定企业和接口
- 管理员在官方开放平台建专用自研应用,核实企业、店铺、仓库、权限与订阅。先准备一个已知SKU和一笔已知订单作只读样本。
- 从官方CLI页下载匹配ECS架构的Linux版,核对来源、版本与可获得的发布校验资料,放到tools/jky-cli。本机只验证过官方v1.0.0帮助,不代表Linux版已验收。
- 管理员私密运行configure。业务参数以权限600临时文件传递、调用后删除,不放进命令行或普通日志。
chmod 755 tools/jky-cli
# configure期间临时可写,日常服务仍只读
docker compose run --rm --no-deps \
-v "$PWD/secrets/jky:/home/node/.jky-cli:rw" \
--entrypoint /opt/jackyun/jky-cli api configure按CLI真实提示操作,核对凭证确实写入挂载目录并仅运行用户可读。若版本使用别的安全存储,先由官方确认路径再调整;不猜环境变量,不打印配置。
| 目的 | 官方方法 | 核验重点 |
|---|---|---|
| 货品规格 | erp-goods.goods.getforqimen | 分页从0开始,编码/规格/条码一致;后台逐SKU配置,未批量迁入整租户 |
| 分仓库存 | erp-stock.stock.skulist | 限定货品/规格/条码/仓库,可用口径、延迟、扣减时点 |
| 推单读回 | oms.trade.ordercreate / oms.trade.fullinfoget | 网店号唯一、店铺ID/名、金额单位、付款语义、默认审核 |
| 会员与等级 | crm.customer.list / add / edit、crm.vipLevel.list | 响应形状、精确过滤、等级ID、空字段修改行为 |
| 积分 | crm.available.integral.balance、crm.integral.log;customer.edit含integralBalance | 可用与总分不同;绝对余额更新及其他渠道并发 |
逐方法契约成功码为200,CLI说明有0的不同表述。程序严格按逐方法核验;封装不一致时阻断,不把0全局视为成功。
步骤12:映射与只读核对
.env填JKY_TENANT_LABEL、JKY_SHOP_ID/NAME、JKY_WAREHOUSE_CODE/NAME,来源必须是本企业实际系统。后台商品填写每个SKU的条码和ERP货品/规格码;在数据中心拉取库存,和已知样本逐项比对。空或多行不能冒充零库存或随便合计。
核实专用仓/商城额度后设置JKY_STOCK_SCOPE_CONFIRMED=true。低金额实测确认金额为元或分后填JKY_MONEY_UNIT=yuan或cent;公开schema的integer和例子不足以证明单位。
步骤13:等级、期初积分与主账
# 仅格式示例,L1等换成本企业真实等级ID
JKY_LEVEL_MAPPING={"探索者":"L1","行路者":"L2","远行者":"L3"}
# ERP和微信物流编码不同,按两边清单填写
JKY_LOGISTICS_MAPPING={"ERP物流编码":"微信物流编码"}会员使用独立DWZ编号保存ERP客户ID,不按手机号自动合并。已有会员迁入须另行去重、验证身份和期初对账,目前无自动迁移。
JKY_POINTS_WRITES_ENABLED与JKY_POINTS_SINGLE_WRITER默认false。仅当这些商城会员由商城独占改分,且ERP不按销售单再次赠分,才可开启。首次ERP积分需核实为零;非零期初将阻断,需另做迁入方案。
写前比对上次确认值,写后读回;资料同步不会把外部积分变动偷偷当新基线。门店/其他系统也会改分时,当前方案不足以保证并发,应与吉客云确认原子增减/幂等接口或改为ERP主账再扩展。未解决前不得宣布全渠道积分完全打通。
步骤14:受控实单写入
业务负责人确认店铺、仓库、样本和影响后开启JKY_WRITES_ENABLED,重建API容器。先一笔允许范围内的低金额单,核对金额、支付单号、ERP销售单、地址和每条SKU,再测发货回读。程序不自动调用ERP审核、过账或仓库发货,企业自身ERP是否自动审核需提前核实。
事件为“未知”只做读回核查;查不到唯一单据仍保持未知,人工查订单与日志后再决定,禁止重复新建或换单号规避不确定性。
10 / 日常运营
商品上架
- 后台→商品管理→新建,填名称、分类、系列和准确介绍,沿用已确认DWZ品牌口径。
- 上传JPG/PNG/WebP,单张≤8MB,最多10张,首张主图;持久保存到服务器图片卷。
- 每个颜色/尺寸设独立SKU,填元售价、商城额度、安全库存及ERP映射;不用演示数值。
- 先草稿核对,拉ERP快照后改在售。有交易的SKU不换编码或ERP映射,新建规格;编辑遇并发冲突重新加载。
订单与退款
待支付预占15分钟;到期查支付并关单后释放。请求结果不明先保留占用。支付后推ERP,仓库按ERP流程发货;系统回读后录入微信。
首期支持整单全额原路退款。所有者批准前完成ERP拦截发货或验收退货,填写业务记录号并核实金额。退款不自动加回实物库存,实际回仓由仓库验收与ERP入库决定。部分退款、换货自动编排、拆单和多包裹尚需扩展。
客服
公众平台添加客服人员,使用微信官方工具接待contact会话;商城工作台保存独立工单,按订单查证、回复、解决后关闭。工单不是完整微信聊天历史镜像。配置真实客服电话和服务时间。
岗位权限
| 角色 | 操作 |
|---|---|
| 所有者 | 账号、配置、ERP控制、退款批准、审计 |
| 运营 | 商品、订单、工单;实际发货在ERP |
| 客服 | 受控订单详情和工单,不能改价/退款 |
| 审计 | 经营与脱敏列表、审计,不能读完整地址/私密工单正文 |
读取个人信息留审计,后台会话8小时。员工独立账号,离职停用;未集成SSO或MFA,后台保持IP白名单和长密码。
11 / 真实联调验收
| 检查 | 操作 | 通过标准 |
|---|---|---|
| 预检 | docker compose exec api node scripts/preflight.mjs | 配置存在性通过,同时记录不代表凭证或业务有效 |
| 原生 | 开发者工具编译,真机iOS/Android | 页面、图片、域名、隐私组件正常 |
| 登录/隐私 | 同意/拒绝,切换体验者 | 浏览不强制登录,拒绝不采集手机号,账号隔离 |
| 价格/库存 | 重复提交、超库存、过期取消 | 后台定价,幂等一单,库存非负,取消只释放占用 |
| 支付 | 真机支付成功/取消,查商户平台与通知 | 金额/商户/用户一致,服务端确认状态 |
| ERP | 核网店号、店仓、SKU、单价、运费、总额 | 唯一已付款销售单,读回金额一致,记录单位 |
| 异常 | 隔离环境超时、重启 | 未知不重复建单,查单后读回 |
| 发货 | ERP实际发货→微信通知→收货组件 | 物流匹配,微信录入成功,再查收货状态才完成 |
| 会员/积分 | 资料更新、完成、刷新、ERP核对、退款 | 唯一会员、等级ID正确、一次赠分/撤回,差异不覆盖 |
| 退款 | 实际拦截/验收证据→批准→查微信 | 原路全额成功,状态一致,不自动加库存 |
| 客服 | 微信即时会话及工单分别测试 | 官方工具收到,工单双向可见 |
| 权限/备份 | 客服尝试越权,隔离恢复备份 | 拒绝越权,脱敏正确,原密钥可解密订单 |
用 docs/验收记录模板.csv 记录环境、时间、脱敏编号与真实结果,不把模拟测试冒充外部验收。日常由财务人工比较微信交易/退款账单、商城金额和ERP单据;当前没有自动微信T+1账单下载与对账任务。异常退款在商户平台按官方流程处理,不重复发起普通退款。
12 / 提审与发布
- 归档DEMO商品,录入核实资料,排除演示价、示意图、占位域名、测试联系方式。
- 确认主体、类目、认证、网站备案、小程序备案;政策经公司核实并在后台确认。
- 开启已验证的ERP配置,积分仍须满足单写方条件;CHECKOUT_ENABLED=true后先在仅体验者版本完成真实联调。
- 配置预检、全部测试及真机通过后,开发者工具上传版本号和说明。
- 公众平台→版本管理→开发版本→提交审核,按实际商品类目补资质和体验路径,不公开密钥。
- 审核通过,由有权限管理员确认客服、仓库、财务就绪后发布。
- 发布后普通账号复测入口与交易,首日关注通知、ERP异常、库存快照、工单和磁盘。
有任一支付、会员或积分联调未完成,就保留体验阶段并记录未完成项;“live”只是配置值,不能代替验收。
13 / 备份、恢复和升级
每天备份
| 内容 | 办法 | 注意 |
|---|---|---|
| 数据库 | docker compose exec api node scripts/backup.mjs | SQLite在线备份、完整性与SHA256;不只拷运行中的主库漏掉WAL |
| 图片 | data/media目录副本 | 与数据库快照一起保留 |
| 密钥/配置 | 公司密码管理器或独立加密备份 | 不和公开代码混放,丢失无法解密 |
| 代码/镜像 | 私有版本库和发布归档 | 保留已验证摘要与回退说明 |
同一ECS磁盘备份无法抵御整机/磁盘损坏。可用公司OSS私有桶或备份服务保存异机副本,禁止公开读写,规划费用与生命周期。自动上传和告警渠道目前未配置,需技术人员在公司授权下实施。需要每日定时备份时由技术人员创建系统任务并监测退出状态;本次没有替你创建后台定时任务。
恢复演练
- 隔离环境执行
node scripts/verify-backup.mjs 备份.sqlite,核摘要与完整性。 - 使用对应的原数据密钥恢复数据库/图片,关闭对外下单与真实微信/ERP。先做只读解密检查,不能把生产同步队列直接启动到真实服务。
- 生产恢复先暂停下单、备份现状、停API,保留事故目录,再按选定快照恢复;不能留下新WAL/SHM与旧主库混用。
- 旧快照可能缺失后续交易,必须对微信支付/退款和ERP补账,核对前不开放支付推单。
更新程序
cd /opt/dwz-commerce
docker compose exec api node scripts/backup.mjs
# 把备份复制到异机,再按版本说明更新代码
# 保留.env、secrets、data、backups;升级仍要先备份
docker compose build api
docker compose up -d --force-recreate api
docker compose ps
docker compose logs --tail=50 api环境变量变化需重建容器,单纯restart不会加载新的Compose环境。代码回退不等于真实业务回退,不能撤回退款或已发货。
密码重置
有权管理员通过私密标准输入使用scripts/reset-admin.mjs 用户名,设置至少20位新密码并注销全部会话;不把新密码写到命令行参数、历史、工单或截图。
14 / 常见问题
| 现象 | 检查及处理 |
|---|---|
| 本地打不开 | 启动窗口是否关闭、8787占用;保持一个服务进程,区分电脑与公网地址 |
| 后台403 | 办公室公网IP变化;管理员SSH更新白名单并重建web,保留限定范围 |
| HTTPS失败 | A/AAAA/CAA、安全组80/443及Caddy日志;修正配置,不绕过安全警告 |
| 小程序域名错误 | request/downloadFile、证书链、公开API地址;正常校验下复测 |
| 上传图看不到 | 持久卷、文件权限、图片域名;保存商品后刷新 |
| 有库存不能买 | 映射、120秒快照、商城额度、预占、安全库存;核对单SKU,不盲目加额度 |
| 说已付但本地未付 | 查微信真实支付单、商户、通知验签;不凭截图改状态 |
| ERP未知 | 在限定店铺按网店号人工查单,读回核查;不重复新建 |
| 积分不同步 | 单写方、等级、期初与外部变化,核对流水及主账,不覆盖消差 |
| 退款待核查 | 查退款号和最终状态,ABNORMAL在商户平台按官方异常流程处理 |
| 微信客服没接待 | 公众平台客服权限、工具登录、服务时间;商城工单不能替代即时会话 |
| 恢复不能解密 | 找回对应DATA_ENCRYPTION_KEY,不反复换随机密钥或删库 |
报错提供请求编号、时间、页面、脱敏业务号及现象;不发密钥、Cookie、完整地址或原始个人信息日志。
15 / 当前范围与待办
原生页面/API、后台商品图片SKU、订单售后、权限与隐私、会员等级积分、工单、微信APIv3连接器、ERP限定方法与未知处理、部署和备份工具。
原生编译、iOS/Android、凭证、真实收退款、微信收发货、ERP租户字段与金额、积分语义、Linux CLI/Docker、域名证书及发布审核。
本期不含储值、积分抵现、营销券、自动整租户货品导入、自动合并会员、部分退款、多仓多包裹编排、自动微信账单对账、自动证书轮换、SSO、多实例高可用。遇到业务需扩展测试,不以占位界面假装已支持。
商品、会员及订单列表目前最多200项,工单/审计也有限量;大规模运营前补分页、历史搜索和归档,轮询需容量验证。正式投放还需要独立安全审查、告警渠道及长期维护安排。
图片素材备份补充
备份图片时,请同时保留数据目录中的 media/(展示图片)与 media-originals/(私有原图和取景记录)。后者只应由已登录的所有者或运营管理员通过后台读取,不要配置为公开静态目录。只恢复展示图片仍能正常展示,但会失去从原图重新取景的能力。数据库备份命令不会代替这两个目录的文件备份。
16 / 官方资料
2026-10-16实际获取核对;微信部分页面由公开HTTP下载读取,因检索工具无法直接展示全文。docs/research保存获取记录和接口契约;未调用企业真实API。
- 微信网络与域名、登录、隐私授权
- 客服、发货管理、收货组件、备案
- 小程序支付接入、共享下单、支付通知、签名验签
- 吉客云官方CLI、接口索引、客户修改契约
- 阿里云Docker、安全组、ECS部署、Node.js24数据库备份
服务器规格、数据归属及上线顺序为本项目工程判断;接口开放、资质、菜单和费用以你们实际账号与操作时官方平台为准。
17 / 定制功能上线补充
本次还增加商品管理 → 定制资格 / 邀请:入口显示/隐藏、当前商城积分门槛、指定会员的一次性定制链接。链接在一笔定制订单成功提交后核销。设置步骤与微信正式链接条件见入口与邀请操作说明。v0.7.0开发阶段的92项全量测试通过,真实链接生成及微信真机跳转待联调。
请按定制操作说明核对Logo尺寸、实际节数/编号、色卡及配镜接单范围,填写加价,并在后台逐项开放。三角主Logo用于正式品牌界面,W小人用于会员和客服。配镜资料先由商家核对再付款,核对单24小时过期,核对后付款期限15分钟。
数据库已增加版本6迁移(包含定制资格、一次性邀请、首页内容、活动成交快照和多端发布),升级前按第13节备份。程序自动增加列并保留历史订单。ERP定制备注读回和实际加工单验收完成前,保持JKY_CUSTOMIZATION_VERIFIED=false;正式定制下单还要求商品工艺确认。默认色号、尺寸、价格及接单范围只是演示。