Commit Graph
3 Commits
Author SHA1 Message Date
gjm a798fbad60 fix: need_purchase 时微信回复文案不再误报"授权成功"
handle_scan() 原先只返回场景是否绑定成功,导致无可用授权的用户扫码后
微信里收到"授权成功"、而 MFC 轮询拿到 need_purchase,提示不一致。

改为返回 authorized / need_purchase / invalid 三种结果,与 /auth/status
的 status 取值保持一致,wechat.py 据此选择回复文案。
2026-09-26 23:58:20 +08:00
gjm 3790821ce0 feat: 阶段 1 最小闭环 - 建表 SQL、/wechat 事件、/auth 接口、首次关注免费授权
- sql/schema.sql: users/authorizations/auth_scenes/usage_logs + sessions 建表
- db.py: aiomysql 连接池,lifespan 内初始化与释放
- wechat_api.py: access_token 缓存 + 临时二维码创建
- auth.py: /auth/create_scene、/auth/status,handle_scan 事务内幂等处理扫码
- wechat.py: 接入 DB 生命周期,处理 subscribe/SCAN 事件;移除多余的 openid query 参数
- 首次关注赠送 7 天免费授权,has_claimed_free 条件更新保证幂等
- config.py/.env.example: 新增 FREE_AUTH_DAYS/SCENE_TTL_SECONDS/SESSION_TTL_HOURS
2026-09-26 22:25:02 +08:00
gjm a2185104ad Add FastAPI wechat app: config, wechat handler, run scripts, requirements, env template 2026-09-25 20:58:11 +08:00