优惠券模块,真正的订单系统难点
很多学完 Python 基础、写过几个 CRUD 小程序的开发者,往往卡在第一步:功能都会写,但业务一旦涉及“状态”就理不清。优惠券恰好是最典型的一类:它不只是“发券核销”两张表,而是要和订单、支付、退款、超时、用户领取这些流程同时打交道。这门课不是讲如何调接口造轮子,而是带你拆开一个真实优惠券功能从后端到小程序端的完整闭环。你缺的通常是“别人怎么设计状态流转”的参照,而不是单点语法。看完你该能回答:订单退款后优惠券应该怎么还?逾期未支付的订单占用券要不要解冻?哪些后端接口要同时考虑幂等?这些才是实战和 Demo 的分水岭。
再梳理一遍“先看哪几块”
如果你完全没接触过这个项目,建议第一课直接看“功能测试和代码梳理”和“订单/退款处理”。这两节把已有功能当作黑盒梳理一遍,你能快速明白订单状态、支付回调、退款记录是如何与优惠券产生关联的。这里的重点不是看懂每行代码,而是搞清楚“用户下单用券—支付成功—退款/超时”这条主链上,券分别处于什么生命周期。接着看“优惠券实现思路讨论”,这是整个模块的设计核心,建议先暂停自己画一张状态图,再对照视频调整。
管理端部分(创建、编辑、删除、查找)和用户端(领券中心、领取)相对独立,适合单独过,难度不高,但容易暴露“接口字段不统一”的小毛病。如果你只是临时要用优惠券,想快速上手,可以先跳到这里做出功能;但之后一定要回头补上订单联动那两集,否则功能只是“能用”,并不“可靠”。基础要求很明确:熟悉 Python 类与函数、会写简单的 API、了解小程序页面和 wx.request 这类请求。不用先学任何复杂框架,课程里的项目应该就是最通用的写法。
学完能做什么,以及怎么练扎实
学完你应能独立实现一个带库存、领取限制、使用条件(比如满减)、状态流转的优惠券模块,并且能和已有订单/退款流程对接。具体说:能做出管理端的券 CRUD 界面,用户端能看到可领券列表并领取,订单提交时校验优惠券是否可用,支付成功后券标记已使用,退款时能退还,超时未支付则自动释放。能做到这个程度,就已经超越很多“只做展示”的小程序项目了。
练习时别只跟着把代码敲完。建议做两件事:第一,自己写一份“优惠券状态机”文档,把未领取、已领取未使用、已使用、已过期、退款中、退款失效等等你能想到的状态都列出来,再看课程里是怎么定义的,相互对照。第二,用课程的数据来走测试:创建一个满 100 减 10 的券,领一张,下一单 120 元使用,然后去退款,观察后端数据库里券的变化;再下 50 元订单并超时未支付,看券是否回到用户手里。这样能真正查漏补缺,而不是看完“感觉会了”。
课程资料包里应该有讲义和练习数据,先自己完成实操,再打开代码比对;遇到异常,重点看订单状态和券状态是否同步,这一招能一路杀掉大部分 bug。
课程目录
1-1 [优惠券] 今日概要 (11:09) 1-2 [优惠券] 功能测试和代码梳理 (01:12:31) 1-3 [优惠券] 功能测试:订单和退款处理 (41:42) 1-4 [优惠券] 功能测试:逾期未支付处理 (15:00) 1-5 [优惠券] 优惠券功能查看 (07:49) 1-6 [优惠券] 优惠券实现思路讨论 (36:32) 1-7 [优惠券] 优惠券管理示例:创建优惠券 (22:35) 1-8 [优惠券] 优惠券管理示例:创建优惠券补充 (16:44) 1-9 [优惠券] 优惠券管理示例:删除优惠券 (04:00) 1-10 [优惠券] 优惠券管理示例:编辑优惠券 (12:55) 1-11 [优惠券] 小程序和API示例:领券中心 (14:26) 1-12 [优惠券] 小程序和API示例:领取优惠券 (19:50) 1-13 [优惠券] 小程序和API示例:我的优惠券 (18:12) 1-14 [优惠券] 今日任务 (07:27) 1-15 [优惠券] 答疑 (09:08) 1-16 [优惠券] 答疑补充 (01:57)





