# WXAPP 云函数接口迁移矩阵 核验日期:2026-09-01 ## 统一入口 - C 端 Angular 所有业务 action 统一调用 `POST /api/functions/xiaoshu/app/gateway`。 - 请求体为 `{ "token": "", "params": { "action": "..." } }`。 - Angular 已移除旧 `/api/WXAPP` 回退、旧 API ID/Key 和直接 Parse `/classes/*` 读写。 - 生产 `migration_status` 当前返回 **86 个已实现 action、16 个显式阻塞 action**,并将 `payment_cart`、`payment_cart_again`、`payment_success` 的外部支付分支单列为部分完成。 - 16 个阻塞 action 也进入新云函数,但返回 HTTP 501 和阻塞原因;这表示调用链已收口,不表示旧功能已经实现。 ## 已实现 action | 领域 | action | |---|---| | 版本/上传 | `app_update`, `upload` | | 内容 | `content_add`, `content_get`, `content_list`, `content_list_llk`, `content_update`, `content_uphis`, `node_get`, `node_list` | | 账号/团队 | `user_get`, `user_info_name`, `user_list`, `user_dept`, `user_login_passwd`, `user_register`, `user_update`, `e_user_list` | | 学习/预约 | `content_add_zt`, `e_add_words`, `e_ck_list`, `e_get_21list`, `e_order_detail`, `e_order_tongji`, `e_order_update_v2`, `e_record_detail`, `e_words_list`, `stu_record_update_v2`, `user_point_list` | | 会员资料 | `receaddr_add`, `receaddr_del`, `receaddr_get`, `receaddr_list`, `receaddr_upd`, `invoice_add`, `invoice_del`, `invoice_get`, `invoice_list`, `invoice_upd`, `user_bank_add`, `user_bank_del`, `user_bank_get`, `user_bank_list` | | 互动与进度 | `vote_add`, `vote_ask`, `vote_question`, `unit_record_update`, `user_star_add`, `user_star_del`, `user_star_is` | | 反馈 | `guestbook_add` | | 服务申请 | `pub_add`, `pub_list` | | 商城商品与购物车 | `product_list`, `product_get`, `product_add`, `product_upd`, `product_del`, `product_sale_change`, `product_stock_change`, `product_stock_list`, `cart_add`, `cart_list` | | 优惠券 | `coupon_list`, `coupon_usrgot_add`, `coupon_usrgot_list` | | 订单、支付与物流 | `payment_cart`, `payment_cart_again`, `payment_success`, `order_get`, `order_list`, `order_delivery`, `order_signfor`, `user_shop_order`, `user_shop_sales` | | 订单评价 | `order_comment_add`, `order_comment_list` | | 代理库存 | `user_group_usr_upgrade`, `user_group_usr_supply` | | 英语阅读 | `reading/me`, `reading/user/update`, `reading/query`, `reading/get`, `reading/create`, `reading/update` | 旧账号登录采用服务端过渡迁移:云函数先尝试 Parse 登录;若该旧账号尚未迁密码,则由云函数在服务端验证旧密码,成功后设置 Parse 密码并签发 Parse 会话。旧接口凭据不会发送给浏览器。 地址、发票、银行卡、收藏与单元学习进度使用新建的规范业务类,客户端类级权限已关闭,只允许云函数按当前用户和帐套读写。生产读写冒烟已验证用户所有权、幂等、软删除、审计和直接数据类访问拒绝。英语阅读仅允许 `SurveyItem`、`SurveyLog`、`PromptTemplate` 白名单类;写入仅开放 `SurveyItem` 和 `SurveyLog`,并执行用户所有权校验。响应会移除 ACL、哈希、密码和会话等敏感字段。 ## 已迁移标准模型 | ModelID | 业务 | Parse 主记录 | Parse 附表 | 2026-09-01 数量 | |---:|---|---|---|---:| | 52 | 词库 | `CommonModel` | `VocabularyWord` | 106,521 | | 53 | 练习记录 | `CommonModel` | `PracticeRecord` | 主记录 430,474;附表 430,651(含 177 条保留孤立历史) | | 54 | 预约排课 | `CommonModel` | `CourseAppointment` | 29,892 | | 56 | 每日学习 | `CommonModel` | `DailyStudyRecord` | 19,017 | | 58 | 课程绑定 | `CommonModel` | `CourseBinding` | 1,514 | | 59 | 上课记录 | `CommonModel` | `LessonRecord` | 18,793 | | 60 | 抗遗忘记录 | `CommonModel` | `MemoryPracticeRecord` | 194,185 | | 61 | 测评档案 | `CommonModel` | `AssessmentProfile` | 206 | 历史回填的最终 dry-run 对旧源主键不再产生新增或更新。Parse 中高于旧库的数量是保留历史或新系统记录,不表示旧源记录缺失。 ## 商城规范化结果 - 商品、购物车、库存流水、优惠券、订单、订单明细、支付明细、评价和代理库存流水均已建立专用规范类,类级权限完全关闭。 - 学习豆结算使用数据库锁和单语句事务,原子校验余额、库存、优惠券与购物车并写入全部流水;重复提交不会重复扣款或出库。 - 外部微信/支付宝充值未配置时明确拒绝,不生成假支付结果。 - 生产专项冒烟已覆盖领券、购物车合并、扣款、库存、订单、发货、签收、评价、商户销售和代理库存幂等,并在结束后清理测试数据。 ## 外部服务、安全或规则缺失而阻塞 | 能力 | action | 前置条件 | |---|---|---| | 短信 | `mcode_send`, `user_login_mobile`, `user_register_mobile` | 新短信服务、验证码存储和限流 | | 微信授权 | `user_sync2` | 新微信容器流程和凭据 | | 资金/积分 | `user_cash_add`, `user_cash_list`, `user_coin_recharge`, `user_exp_transfer`, `user_money_recharge`, `user_money_transfer` | 支付凭据、独立支付密码服务、不可变事务账本和确认后的转账/提现规则 | | 支付密码 | `user_update_paypwd`, `user_update_pwdall` | 独立安全哈希和重置流程 | | 密码短信重置 | `user_update_pwd` | 新短信验证码链路 | | 实名认证 | `user_rnauth_add`, `user_rnauth_get`, `user_rnauth_upd` | 合规审核、加密存储和访问审计 | ## 完成判定 当前可以确认: - 新 Angular 浏览器端已不再直连旧业务接口;所有调用先进入新云函数。 - 旧实时接口只读探测中,商城历史数据为 0,因此新商城规范类从上线后开始记录,不伪造旧历史订单;已实现能力以真实生产写后读冒烟验证。 - 86 个 action 已有新云函数业务实现和权限边界。`e_get_21list_tj` 已按旧接口真实契约迁移为“已完成复习任务数”;旧页面把该数量显示为收入属于旧系统文案/语义错误,不能把数量当成金额。 - 16 个 action 尚未完成业务语义迁移,不能因为统一返回 501 就算作“已迁移”。 - 旧服务器持续同步桥尚未上线,历史快照之后的新写入仍可能产生数据库差异。 只有在 16 个 action 获得新短信/微信/支付/合规能力后实现,或由业务正式确认下线,并且旧库增量同步、同水位哈希对账、最终停写切换完成后,才可以签署“所有接口及数据库完全迁移”。