1.3 环境准备:开通云开发与小程序账号

场景

选型敲定后的第二天下午,我带着电脑去店里,准备一口气把账号和环境开完。本以为是个收银台式的傻瓜流程,实际花了三天,卡点全在资质上:朋友的店是刚注册的个体工商户,营业执照经营范围只有“工艺品零售”,小程序类目审核时被退回一次;微信支付商户号申请要求对公账户,跑了两趟银行才办下来;最折腾的是小程序认证的公函盖章,个体户没有公章,只能走法人手持证件的特别通道,来回补充了两次材料。

这节把整个开通流程捋成一张地图,给同样从零开始的人省时间。先把结论放这里:个体工商户完全可以开通小程序和微信支付,只是部分环节要选对通道,别按企业流程死磕。整个流程分两条线并行推进——小程序账号线负责“能让用户打开”,云开发线负责“后端能跑”,微信支付线负责“能收钱”。

朋友全程只有一个诉求:别让我填一桌子表格。她怕的不是花钱,是那种“每个窗口都要重新解释一遍我是谁”的挫败感。所以我把所有需要法人本人操作的动作——认证扫脸、银行签字、商户平台确认——压缩到两个半天集中办完,其余能代填的表单我都先填好只留签字位。这个安排后面证明很关键,否则她会把这事拖到过完年。

那三天的流水账是这样的:第一天注册小程序、提交认证资料、同时在网上填云开发开通申请,下午去银行问对公账户需要哪些材料;第二天认证资料被退回,补经营范围说明的同时,跑银行交对公账户开户材料,云开发环境先在个人测试号上开起来了;第三天认证通过、对公账户办好、商户号申请提交,晚上把商品集合和权限规则配好,第一版列表接口跑通。如果没有提前画好并行计划,这三天的活很容易串行成两周,开店的日子就得往后顺延。

方案

三条线的步骤、耗时和卡点我提前列了一张表,照着走基本不会迷路:

步骤 办理渠道 耗时 容易卡的点
注册小程序账号 mp.weixin.qq.com 半小时 邮箱不能复用
主体认证 微信认证 1~3 天 个体户无公章走法人通道
选择服务类目 小程序后台 当天 经营范围要覆盖类目
开通云开发环境 小程序后台云开发页 10 分钟 个体户可直接开通
申请微信支付商户号 pay.weixin.qq.com 1~5 天 需对公账户
绑定小程序与商户号 商户平台 当天 AppID 关联确认

我的建议是小程序注册和主体认证先跑起来,因为认证要等;等认证的几天里,云开发环境可以先用个人主体的测试号开通做开发,代码逻辑是一样的,上线前再切到正式环境。微信支付商户号同步去银行办对公账户,三件事并行能把三天压缩到一周内。

还有个顺序细节值得强调:支付商户号的申请可以在小程序认证通过之前就提交,因为它认的是营业执照而不是小程序,两边并行又是一天。但“绑定小程序与商户号”这一步必须等小程序认证完成、拿到已认证的 AppID 之后才能做,别把它排在前面干等。

配置/代码

云开发的开通比想象中简单。在小程序开发者工具里打开云开发面板,点开通,选按量付费,填一个环境名,两分钟就拿到环境 ID。这里插一句:环境开通时会让选基础版或标准版,起步期直接选按量付费的基础版即可,等大促前再根据调用量升级,钱花在刀刃上。拿到 ID 之后第一件事是建数据库集合并配权限——这一步常被忽略,直接影响后面调试顺不顺:

// 云数据库 goods 集合的权限规则:只读对所有用户开放
{
  "read": true,
  "write": false
}

商品这类公开数据设为所有人可读、不可写;购物车和订单这类私有数据,必须设成“仅创建者可读写”,否则用户 A 能查到用户 B 的订单,属于严重的信息泄露。我自己调试时图快把 orders 临时设成全可读,险些带着这个配置上线,幸亏发版清单里有一条“检查所有集合权限规则”,发布前五分钟改回来,惊出一身冷汗。

开通完成后,把环境 ID 填进小程序,再检查开发者工具里的 project.config.json,确认 cloudfunctionRoot 字段指向云函数目录,这样右键就能部署云函数,不用敲命令行。第一次部署云函数的流程是:在云函数目录上右键、选择“上传并部署:云端安装依赖”,等十几秒,控制台里出现部署成功就能调用了。部署频率和日志检索的技巧,在云函数错误与告警那节有展开。环境 ID 本身不敏感,可以提交进代码仓库;真正敏感的是后面微信支付的 APIv3 密钥,任何时候都不要写进仓库。

云数据库这边也顺手把索引建了,不然等数据量上来再建就尴尬了:goods 集合按 categoryId 建单字段索引,skus 按 spuId 建索引,orders 按 openid 和 status 建组合索引。控制台的索引管理页可以点点建好,也可以在代码里用 createIndex 建好存进部署脚本里,后者方便多个环境同步照抄,免去在正式环境漏建索引这种低级事故。

如果你还没有云开发环境,腾讯云云开发 CloudBase 新用户特惠是新开通的首选入口,套餐比按量付费适合起步期日均调用不高的商城。

微信支付这边的配置是本节的重头:商户平台拿到商户号,在小程序后台把 AppID 与商户号关联,然后在商户平台生成 APIv3 密钥并设置支付回调地址。回调地址必须填备案过的 HTTPS 域名——云开发的好处是云函数可以直接获得一个默认域名,备案后挂上来,省去自备服务器的麻烦。备案全程花了大概十二个工作日,建议开通环境当天就提交,别等到大促前。

配置项 值 存放位置
环境 ID env mini-shop-prod 代码配置
商户号 mchid 商户平台分配 仅云函数环境变量
APIv3 密钥 自定义 32 位 仅云函数环境变量
回调地址 云函数默认域名 商户平台
证书文件 商户平台下载 仅云函数

证书和密钥统一走云函数的环境变量注入,代码里只读变量名,这样即便代码仓库哪天泄露,钱那头的钥匙还在保险柜里。

各集合的权限规则也在这一步配齐,后来再没动过。其中 orders 的“仅创建者可读写”是最关键的一条,杜绝了越权查看他人订单的可能,更细的鉴权设计在安全加固那节展开:

集合 读 写 备注
goods 所有用户 仅云函数 前端只读列表
skus 仅云函数 仅云函数 含库存,严格
orders 仅创建者 仅云函数 防越权看单
events 仅云函数 所有用户写入 埋点上报用

踩坑

第一个坑是类目与经营范围。小程序服务类目“电商平台”要求营业执照有对应经营范围,朋友的“工艺品零售”被退回。解决办法是重选“百货/工艺品”类目,电商类目留给以后扩展。类目选错轻则审核退回,重则上线后被处罚,值得花半小时研究类目说明。另外已选类目会影响后续能否调用支付、直播等能力,选之前先对着能力清单核一遍,免得事后返工。

第二个坑是公章。个体工商户默认没有公章,微信认证的公函流程让我们干等两天。后来走“法人手持身份证加营业执照”的替代通道才通过,客服提示这个通道需要营业执照注册满一定时长,新执照可能要等。开店计划里务必给认证留缓冲,别把开业日子卡在认证这关上。

第三个坑是支付回调域名。一开始我以为要自己买域名备案,跑了一圈发现云函数自带 HTTPS 域名,只是要注意这个域名有调用频率限制,做过高并发压测会被限流。最终方案是下单走云函数域名,静态资源走 CDN 域名,两条链路分开。备案这件事本身也要十几个工作日,趁早提交。

第四个坑是测试环境数据污染。开发环境我造了一批测试订单,某次把环境 ID 改错发布到正式环境,测试订单混进了线上列表。虽然十分钟后回滚,但那十分钟正好有顾客在下单,客服解释了好一阵。此后 env 切换变成发版检查清单的第一条,并且测试环境里的订单统一带“测试”前缀,一眼能认出来。

第五个坑是 AppSecret 误提交。有一次提交代码顺手把小程序的 AppSecret 也传上去了,虽然仓库私有,还是连夜重置了一遍密钥。加 git 忽略规则永远比记性好使,密钥这种东西不该出现在编辑器里。

第六个坑是没开计费提醒。云开发按量付费,某次我写了个压测脚本忘记关,跑到半夜,第二天收到扣费提醒才发现,账单多出了一小笔冤枉钱。当天就在控制台设了月度预算阈值告警,超过预算八成就弹通知。小团队对账单敏感,这条告警值千金。

小结

环境准备这一节没啥技术难度,全是流程和资质的耐心活。核心经验三条:三条线并行推进省时间;权限规则和密钥在写第一行代码前就定好规矩;发版清单里永远有“检查环境 ID 和集合权限”这两条,再加一条“密钥没进仓库”。友情提示:所有需要法人本人扫脸和签字的环节集中办好,这是个体户开店最省力的走法。开通只是入场券,下一节把云函数、云数据库、云存储的地图铺开,正式进入开发。

延伸阅读