小程序 / 上架指南

个人小程序从注册到上架:一个月走完的流程和我踩的坑

个人小程序从注册到上架:一个月走完的流程和我踩的坑

弈CO 上架了。回头看,从注册到过审花了一个多月,代码倒是写得不多——大头都耗在流程和等待上。

这篇文章把全流程捋一遍:每一步要做什么、花多久、哪里有坑。如果你也打算用个人主体上架一个小程序,希望能帮你少绕几圈。

先看总账

事项花费耗时说明
注册小程序免费半小时邮箱即可
个人认证30 元7 天内微信支付认证费
小程序备案(工信部)免费13 天最长20天
域名注册1.1 元/年即时site域名优化活动,不用云开发才需要
服务器轻量应用服务器即时不用云开发才需要
域名备案免费14 天最长20天,和小程序备案互斥,见下文
上架审核免费1~7 天/次被拒3次

下面按时间线展开。

第一步:注册和认证

注册小程序用邮箱就行,个人主体选「个人」,不需要营业执照。真正要注意的是认证:不认证没法用支付、没法备案。个人认证 30 元,走的微信支付,一般几天内通过。

这一步没坑,但有个前置知识:个人主体拿不到手机号(快速验证组件只有企业主体能用),昵称头像也不能静默获取——wx.getUserProfile 早被收回了,要用官方的「头像昵称填写能力」,用户点按钮主动给你才有。设计登录方案时别按老教程来。

第二步:备案——最大的时间黑洞

2023 年起小程序必须工信部备案才能上架。流程是:MP 后台填信息 → 平台初审 → 通信管理局审核,用时13天。

这步的建议只有一条:注册完、认证完,第一时间提交备案,然后去写代码。备案和开发互不影响,但备案不上,一切白搭。

这里有个大坑:域名备案和小程序备案是互斥的

我的后端是自己的 Go 服务,需要域名和服务器,于是域名也要备案。然后发现:同一主体下,域名备案和小程序备案不能同时进行——必须等小程序备案完全通过,才能发起域名备案。第一次申请被拒,第二次域名备案用时 14 天。

手记 · 备案互斥:同一主体两条备案只能串行,第二段的起点你控制不了;云开发是绕开整条链子的那个岔路口
手记 · 备案互斥:同一主体两条备案只能串行,第二段的起点你控制不了;云开发是绕开整条链子的那个岔路口

也就是说,如果你两条都要走,串行等待可能叠加到一个多月,而且第二段的起点你控制不了。

想绕开这条路有个办法:用微信云开发(CloudBase)。 云开发给的默认域名(xxx.service.tcloudbase.com)免备案,可以直接进小程序合法域名列表,域名注册、域名备案、服务器购买三件事全省。代价是接受云托管的计费和迁移成本。弈CO 早期就在云开发上跑过,后来为了虚拟支付的推送回调和自己掌控部署,迁到了自有服务器——如果你的小程序不需要这些,云开发确实是个人开发者最省事的起点。

第三步:开发,那些文档不会主动告诉你的

开发阶段的坑,全是「小程序不允许」和「微信要求」两类。

不能用 webview

个人主体小程序不能用 web-view 组件(那是企业认证主体的能力)。这意味着所有内容必须原生页面渲染。

弈CO的赛程规程大多是微信公众号文章。webview 嵌不了,跳转出去体验又断,我的做法是:后端把规程文章爬取下来,正文转存到数据库,前端用原生页面展示。比赛创建时后台异步抓一次,存标题和正文文本,用户在小程序里看到的是我自己的原生阅读页。附带的好处是 AI 问答时可以直接检索规程原文——数据在自己库里,怎么用都行。要注意公众号文章有防盗链和动态渲染,抓取时得做容错,抓失败就把原文链接透出,别硬撑。

隐私声明不过关,直接打回

调用微信昵称头像、保存图片到相册这类接口,前提是在 MP 后台配置《用户隐私保护指引》,把你要收集的信息逐项声明。每次提审,微信会核验指引与代码实际用到的接口是否匹配——声明里没写的接口,审核时就是一颗雷。

我加了头像昵称填写(chooseAvatar + nickname input),指引里就必须列上「头像、昵称」的收集用途。运行时还有配套要求:调隐私接口前用户必须同意过指引,代码里用 requirePrivacyAuthorize 检查,没同意就让微信弹官方授权框。这套不做,轻则接口静默失败,重则审核被拒。

虚拟支付:安卓 iOS 是两套账

要在小程序里卖虚拟商品(金币、会员),只有一条路:微信虚拟支付,道具直购模式。这里的坑最密集:

  • 必须双端都上。我以为 iOS 可以先不上,先发安卓版——被拒了。审核要求虚拟支付能力按平台完整提供,iOS 端拉不起支付就是能力缺失。后来 iOS 配了小程序简称、开通苹果 IAP 才过。
  • iOS 手续费高得多。安卓 1%,iOS 12%(Apple 佣金),结算周期也长。所以到账金币我做了两套虚拟商品
  • 道具不是在前端定义的,在 MP 后台「虚拟支付 → 道具管理」创建,价格单位是,前后端配置的价格必须和道具完全一致,差一分钱支付就报错。
  • 个人主体没有沙箱,只能小额真单验证。上线前用 1 元的档位把下单、支付、发货推送、退款走了一遍。

其他常见问题,顺手册一起列了

  • 服务类目:审核会卡类目与实际功能的匹配度。弈CO选了「工具」方向,虚拟支付也要求类目里必须有「工具」。
  • 月限额:个人主体虚拟支付月支付限额 10 万元,够小产品用,做大了要升主体。
  • 消息推送:支付回调需要配置服务器消息推送(URL 必须 https、Token 两端一致),这就是我最终要自有域名的原因。
  • AI 内容:如果小程序里有 AI 生成内容,要做好「本回答由 AI 生成」的标识——这是《人工智能生成合成内容标识办法》的硬要求,2026 年已有未落实的产品被公开处罚。

第四步:提审,和被拒之后

第一次提审被拒,原因就是前面说的 iOS 虚拟支付缺失。微信的审核意见会给到具体页面和条款,照着改就行:

  1. 补齐 iOS 侧支付配置(简称 + IAP);
  2. 隐私指引按意见补了两项声明;
  3. 重新提审,几天后通过。

总花费:认证 30 元 + 域名 1.1 元/年 + 轻量应用服务器费。

我上架的围棋赛事小程序,欢迎围观——微信搜「弈CO」或扫码:

弈CO 小程序码

关于它内部的 Agent 实现和提示词写法,我另写了一篇:《一个围棋小程序里的七个 Agent》

小程序上架备案上架

← 返回项目