尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

独立开发者商单实战|商超小程序线上迭代安全、并发与性能全量修复复盘

独立开发者商单实战|商超小程序线上迭代安全、并发与性能全量修复复盘 承接前六篇自提核销、退款、定时任务异常双向同步踩坑复盘本篇不再局限前端交互 bug聚焦项目上线后暴露的高危安全漏洞、并发竞态数据错乱、定时任务同步失效、页面性能卡顿等线上真实问题包含漏洞根因、服务端改造方案、前端配套适配做门店即时零售小程序开发可完整参考规避线上重大事故。一、本次迭代整体改造说明本次 V1.0.1 迭代无新增独立业务模块以线上风险修复、数据一致性治理、页面性能优化为核心同步配套两项业务规则优化所有修复逻辑全部完成灰度测试并正式部署。 整体改造分为四大板块P0 致命级事务 / 安全漏洞修复、多等级权限越权漏洞封堵、订单 / 退款 / 库存对账逻辑统一、全页面加载性能与交互体验优化。改造完成后彻底解决并发超卖、接口越权、定时任务数据不同步、页面加载卡顿、脏数据残留等线上核心痛点。二、致命级 P0 线上故障逐条修复1. 无事务锁并发下单引发 SKU 库存超卖现象多人同时抢购同规格商品库存扣减出现负数产生大量超卖订单。 根因下单云函数未使用数据库事务库存校验与扣减存在时间差并发场景校验失效。 修复使用 runTransaction 事务包裹下单全流程服务端统一核算商品实付价格库存不足直接拦截下单创建失败自动回滚库存数据。2. 取消订单、定时关单无法归还 SKU 库存与优惠券现象用户手动取消或系统自动关闭待支付订单库存未恢复绑定优惠券永久标记已使用。 根因cancel_order、auto_cancel_order 流程缺少库存回滚、优惠券恢复分支。 修复取消订单执行库存归还逻辑通过用户优惠券唯一 ID 精准恢复未过期券可用状态过期券不做返还。3. 优惠券 ID 前端预占用造成订单优惠券存储错乱现象前端提前锁定优惠券网络波动会出现优惠券被占用但订单创建失败优惠券永久失效。 根因优惠券占用逻辑放在前端服务端无统一管控。 修复订单表持久存储 userCouponId移除前端占用逻辑优惠券占用、核销统一由服务端原子执行。4. 支付回调接口无鉴权存在伪造支付风险现象外部可直接调用支付回调接口手动篡改订单为已支付状态无需真实付款。 根因payment_callback、wx_payment 接口未做来源校验订单金额以前端传参为准。 修复禁止前端直接调用支付回调实付金额以服务端计算结果为准永久关闭模拟支付总开关。5. 小程序彻底关闭进程后支付状态两端不同步现象用户付款后直接杀掉小程序进程前端未收到支付回调订单长期停留待支付。 根因缺少兜底主动同步支付状态机制。 修复新增 sync_pay_status 云函数订单页面每次 onShow 主动拉取微信官方订单状态兜底同步更新支付状态。6. 全量 C 端操作接口存在 openid 越权访问漏洞现象用户篡改 ID 可操作他人地址、退款、发票、评价、优惠券数据。 根因退款、地址修改、开票、评价等接口未校验操作人与数据归属 openid。 修复所有用户侧操作强制校验数据归属仅允许操作自身私有数据。7. 商家后台操作无管理员身份与状态流转校验现象任意登录店员可随意修改所有订单状态、查看全量经营报表订单可逆向修改支付、完成终态。 根因后台状态更新、账号管理接口无权限白名单、无合法流转限制。 修复后台操作校验管理员身份配置订单合法状态流转白名单每一步操作记录修改前后完整日志。8. 自提核销无幂等控制核销码可重复核验现象门店多次扫码核销同一订单销量重复累加核销记录错乱。 根因pickup_verify 无事务判断未做已核销拦截。 修复事务执行核销逻辑已核销订单直接拦截新增 pickupVerified 标记销量统计增加幂等防护。9. 用户上传评价、退款凭证无内容安全校验现象用户可上传违规图文无拦截机制存在合规风险。 根因图片、文本上传接口未对接微信内容安全检测。 修复新增 check_content_security 云函数评价、退款凭证提交前强制校验违规内容直接拦截删除。三、P1 对账类数据逻辑缺陷修复限制订单状态逆向修改已支付、已完成、已退款终态禁止手动变更规避对账混乱统一退款优惠券返还规则仅整单全额退款返还未过期优惠券部分退款不返还退款同步回滚商品库存后端自动标记购物车下架 / 售罄失效商品前端置灰禁止勾选结算清理脏数据统一自动确认收货计时基准自提订单以核销时间计算配送订单以送达时间为准避免提前确认定时任务统一批量更新过期优惠券状态同步更新用户优惠券列表。四、多等级高危权限漏洞封堵发票查询、修改接口增加管理员 发票操作双重权限校验用户税号、邮箱列表、导出统一脱敏展示防止隐私泄露秒杀销量修改接口仅允许后台管理员调用限制单次修改区间杜绝销量伪造后台登录绑定用户 openid手机号与微信身份双重匹配仅录入超管手机号可登录管理账号防止账号盗用区分管理员与普通店员权限退款、开票、批量数据导出接口拦截店员操作优惠券领取增加事务锁校验有效期、剩余库存、单人领取上限防止并发超领、过期券领取优惠券核销使用原子条件更新同一张券只能绑定单个订单杜绝 “双花”定时任务云函数拦截前端调用仅允许云端定时触发器执行图片上传、全商品列表、批量销量更新、消息推送、操作日志接口全部增加管理员登录校验屏蔽匿名访问下线所有调试、测试接口删除模拟器一键切换超管权限的后门代码。五、中低风险交互、运维类优化修复下单、领券、核销增加前后端双重防抖锁避免重复点击创建多条订单、多次领券用户拒绝定位权限时弹窗引导开启无地址禁止配送下单页面不会卡死订单 Excel 导出默认仅近 30 天数据单批次上限 1000 条解决云函数超时删除商品同步清理用户购物车、收藏、评价关联脏数据评价统一隐藏不删除库存预警阈值后台可配置去除代码硬编码分页接口限制单次最大查询条数防止大数据量查询页面卡死云存储划分用户私有文件目录生成临时安全访问链接管控图片访问权限新增资金流水表记录全部收支退款同步扣减商品销量完善对账依据库存回滚增加 stockRestored 标记仅首次取消订单执行回滚避免库存重复叠加全局区分 dev 测试环境与正式环境增加环境标识用户拒绝头像昵称授权展示默认兜底素材。六、两大核心业务规则迭代优化优化 1秒杀 普通商品混合订单优惠券抵扣规则订单仅含普通商品优惠券门槛、抵扣逻辑保持不变秒杀 普通商品共存订单可使用优惠券优惠仅抵扣普通商品金额页面增加文字提示订单全为秒杀商品禁用优惠券选择退款配套逻辑秒杀金额全额原路退回优惠仅按普通商品金额比例扣回。优化 2商品主表冗余价格库存字段清理后台移除商品主表价格、库存录入框价格、SKU 库存统一在规格模块维护商品列表适配展示逻辑单规格直接展示价格多规格标注可选规格购物车、下单、库存扣减全链路统一读取 SKU 数据废弃主表价格字段秒杀逻辑不受改动影响。七、全页面加载性能卡顿专项修复分类页空白加载失败修复异步渲染竞态、错误调用管理员秒杀接口问题增加查询索引与降级兜底接口并行加载优化下拉刷新、上拉分页购物车加载缓慢 N1 请求重构 get_cart 接口服务端批量查询商品、秒杀状态一次性返回前端消除循环串行请求首页加载冗余请求移除普通用户无权限的管理员接口调用并行加载推荐商品与门店配置商品列表快速加购优化单规格一键加购多规格弹出选择弹窗阻止冒泡不跳转详情全局样式统一修复清除 button 原生默认边框订单操作按钮统一样式商品详情提速删减调试代码、合并重复请求图片链接延迟转换多接口并行请求缩短首屏等待订单列表无限加载错乱底部仅展示加载提示根据数据总量终止分页避免生命周期重复请求统一金额 toFixed (2) 格式化、时间标准化展示、优惠券标签、秒杀价格红色高亮视觉统一首页自动过滤过期停用公告订单页面 onShow 自动刷新状态解决定时任务数据不同步问题。八、本篇小结本次迭代属于项目上线后关键风险治理版本覆盖数据库事务并发、接口权限安全、资金对账逻辑、定时任务同步、前端页面性能五大核心板块同时优化秒杀优惠券、SKU 数据存储两套核心业务规则。 线下商超小程序线上事故大多来源于并发无锁、权限校验缺失、定时任务两端数据割裂本次所有修复方案均经过真机并发压测、门店长期运营验证整套事务管控、接口鉴权、数据兜底同步方案可直接复用至同类同城零售小程序项目。连载目录回顾第一篇B 端商家后台完整产品设计思路第二篇C 端用户端完整产品设计思路第三篇小程序后台实拍图 业务流程逻辑图汇总第四篇后台开发踩坑复盘商品、营销、权限配置类 Bug第五篇用户端 后台联动踩坑上篇库存、支付、订单同步问题第六篇用户端 后台联动踩坑下篇自提核销、退款、定时任务异常本篇商超小程序线上安全并发性能迭代修复复盘第八篇本地商超小程序全项目开发历程完整复盘总结下一篇将完整梳理整套商超小程序从需求设计、开发、线上迭代全流程项目复盘汇总全部踩坑点与标准化解决方案。
返回列表