畅播科技CHANGBO TECH ← 返回开发方案
IMPLEMENTATION READINESS REVIEW

实施材料就绪度评估

基于你提供的凭证与本机对 tinghuan.com.cn 的实测解析 / 端口探测,逐项核对「微信服务号网页授权 H5 官网」上线所需材料,并给出方案 C(云服务器)与云函数(Serverless)的选型建议。

评估日期:2026-11-10 域名:tinghuan.com.cn AppID:wx6ff6319c3ed127f6 备案号:沪ICP备2024070068号
01

总体结论

凭证齐备环境未就绪
身份类材料已齐,运行与接入环境还差一截。

认证服务号、AppID、AppSecret、备案域名、代码模板都已具备;但HTTPS(443 未开放、无证书)、目标子域名解析、公众号网页授权域名与校验文件、服务器身份与运行时这几项尚未落实,且必须管理员在微信后台操作,无法由代码代替。

✓
已经具备(6 项)

认证服务号 · AppID/原始 ID · AppSecret · 已备案域名 · 前后端代码与 Nginx/Docker/云函数启动模板 · 现有 Ubuntu + nginx 服务器(22/80 开放)。

!
必须补齐(8 项)

SSL 证书与 443 安全组 · 目标访问域名及解析 · Node ≥18 运行时 · 网页授权域名 + MP_verify_*.txt · IP 白名单(用服务器出口 IP)· 服务器 .env 与 WX_MODE=live · 合规文案与真实主体信息 · 会话/用户持久化。

i
另需你确认(10 项)

主要是服务器登录信息、云厂商(备案接入是否一致)、选用哪个子域名、DNS 与公众号后台管理权限、是否需要 PC 扫码登录等,详见第 06 节。

02

材料逐项核对

类别材料 / 条件状态说明与下一步
微信身份已认证服务号已具备你已确认;仍建议在「接口权限」里核对「网页授权获取用户基本信息」为已获得
AppID / 原始 ID已具备wx6ff6319c3ed127f6 / gh_2fba6debb5b2,已写入代码;原始 ID 不参与 OAuth
AppSecret已提供·需处置已在对话中明文出现。未写入本项目任何文件;建议只在服务器环境变量注入,并择期重置(见第 08 节)
开放平台 / UnionID / PC 网站应用缺失PC / 非微信浏览器登录必需;需另申请「网站应用」,与本服务号绑定同一开放平台账号
域名ICP 备案已具备现有站点页脚显示 沪ICP备2024070068号;域名 WHOIS 注册商为腾讯云、DNS 在 DNSPod,2027-01-27 到期
备案接入商一致性待确认备案与接入商绑定。若服务器不在备案对应的云厂商,需先办「接入备案」,否则国内服务器会被判定未备案拦截
服务器SSH 密钥待确认本机 SSH 配置中只有一条 region-8.autodl.pro(root),看不出是站点服务器;需提供目标 IP/域名、用户、密钥路径
系统与端口实测www 指向 49.232.224.131,Ubuntu + nginx/1.24.0,22 与 80 开放、443 未开放、3000 未占用
Node ≥ 18 运行时待确认服务端依赖全局 fetch 与 AbortSignal.timeout;版本不足需先升级
网络与安全SSL 证书 + HTTPS缺失实测 https://www.tinghuan.com.cn 443 连接失败;微信授权回调与 MP_verify 校验都要求 HTTPS
目标访问域名 / DNS 记录缺失裸域 tinghuan.com.cn 无 A 记录;www 已有正式站点在用,建议另开子域(如 m. / demo.)
公众号后台网页授权域名 + 校验文件缺失管理员填域名 → 下载 MP_verify_XXXX.txt → 放 public/ 根目录 → 能访问后再提交保存
IP 白名单待配填服务器出口公网 IP(在服务器上 curl -4 ifconfig.me),可能与入口 IP 不同;本项目只调 OAuth 接口,一般不受其限制,但配上更稳妥
JS 接口安全域名(可选)按需只有用微信分享 / 扫一扫等 JS-SDK 才需要,且与网页授权域名要分别添加
代码与内容官网 + OAuth 服务端 + 部署模板已完成含 Nginx 配置、Dockerfile、云函数 scf_bootstrap
会话 / 用户持久化需改造当前用内存 Map,进程重启即失效、多实例不共享;选云函数则必须外部化
真实主体信息与合规文案缺失现有站点主体为「上海畅播智联数字科技有限公司」,Demo 内「畅播科技」及全部文案/LOGO/联系方式均为占位,需替换;补齐《用户协议》《隐私政策》、备案号
03

本机实测发现(本次新增信息)

以下为只读探测结果,未登录服务器、未改动任何线上配置。

探测项结果影响
tinghuan.com.cn A 记录无(公共 DNS 均无返回)裸域当前无法访问;若用裸域需新增解析
www.tinghuan.com.cn49.232.224.131已有正式站点在 80 端口运行(nginx 1.24.0 / Ubuntu),不要直接覆盖
现有站点内容「上海畅播智联数字科技有限公司 - AI数字人矩阵直播赋能实体商家」与 Demo 占位品牌不一致;页脚有 沪ICP备2024070068号
端口 22 / 80 / 443 / 300022、80 开放;443、3000 关闭HTTPS 是当前最大硬缺口;需签发证书并在安全组放行 443
域名 WHOIS注册人「上海庭桓信息科技有限公司」,注册商腾讯云,DNS:DNSPod,有效期至 2027-01-27域名实名主体与网站运营主体不同,需核对 ICP 备案主体、微信认证主体是否一致或存在授权关系
本机 SSH 配置仅 Host region-8.autodl.pro / User root无法据此确认站点服务器登录方式;需补充目标主机信息
项目版本控制当前目录不是 Git 仓库.gitignore 目前不生效;.env 只在服务器创建,避免随目录上传或误提交
!
建议用独立子域名,不动现有 www 站点

例如 m.tinghuan.com.cn(或 demo.tinghuan.com.cn)单独解析 / 单独 server block。这样既能与主站共存,网页授权域名也只需按该子域名填写,回滚互不影响。注意微信后台填的域名必须与 redirect_uri 完全一致(含 www 与否)。

04

方案 C(云服务器) vs 云函数:怎么选更省事

结论先给:在你已有 Ubuntu + nginx + SSH 服务器的前提下,方案 C 标准云服务器更省事;云函数适合"不想再管服务器 / 流量弹性"的场景,且会多出会话外部化与平台配置。

维度方案 C · 现有云服务器云函数(腾讯云 SCF Web 函数 / 微信云托管)
代码改动几乎零改动:服务已监听 0.0.0.0:$PORT,上传后 pm2 start 即可Web 函数可直接跑 HTTP 服务:加 scf_bootstrap(已备好)设 PORT=9000;但必须把内存会话/用户改成数据库或 Redis
静态资源Nginx 直出 public/,可再上 CDN同一函数即可托管静态(我们的服务已支持),也可拆到 COS + CDN,多一层配置
HTTPS / 证书需自己申请证书、配置 Nginx、放行 443(当前 443 关闭)平台提供 HTTPS,绑定自定义域名时上传/选择证书即可,省去 Nginx 与证书续期运维
自定义域名DNS A 记录指向现有 IPDNS CNAME 指向 *.tencentscf.com + 函数路径映射;大陆地域必须已备案域名(你已满足)
出口 IP / 白名单出口 IP 基本固定,容易加白名单出口 IP 动态。本项目只调 sns/oauth2/access_token 与 sns/userinfo,通常不受 IP 白名单限制;若后续要调 /cgi-bin/token(菜单、模板消息等),需 VPC + NAT 网关 + 固定 EIP 并加白
会话单实例内存可用(重启会掉线,建议仍落库)必须外部化:冷启动与多实例不共享内存
运维需管 Node、PM2、证书续期、日志、安全补丁免服务器运维,按量计费,弹性扩缩;但需熟悉函数平台、日志与冷启动
共同必做证书(或平台证书绑定)· DNS 解析 · MP_verify_*.txt 可访问 · 公众号网页授权域名 · .env 注入 · 微信内真机验收 —— 两条路都绕不开
i
什么时候值得换云函数

① 你不想维护这台服务器或后续没有固定运维;② 访问量波动大、需要弹性;③ 后续要接模板消息/客服消息等更多微信能力且愿意配固定出口 IP。若只是"公司官网 + 会员登录"这种稳定低流量站点,云服务器路径的步骤最少、排障最直观。

若选云函数,已在 deploy/scf_bootstrap 备好最小启动脚本:上传到函数代码包根目录、chmod 755,函数类型选「Web 函数」、运行时 Node.js 18+,服务端代码几乎无需改动。但仍需完成会话外部化改造,否则登录后刷新即丢失登录态。

05

需要额外配置和处理的清单

A · 服务器与网络

  1. 确认目标服务器 IP / SSH 用户 / 密钥路径,验证可登录
  2. 确认操作系统与 Node 版本,低于 18 先升级
  3. 安全组 / 防火墙放行 443(当前关闭)
  4. 新增独立子域名 server block,避免影响 80 端口现有主站
  5. 安装 PM2(或 systemd)守护 Node 进程,配置日志与开机自启
  6. 记录服务器出口公网 IP:curl -4 ifconfig.me

B · 域名与证书

  1. 决定目标域名(建议 m.tinghuan.com.cn),在 DNSPod 加 A / CNAME 记录
  2. 申请域名 SSL 证书(腾讯云免费 DV 或 certbot),部署证书链与私钥
  3. 配置自动续期;验证 https://域名/MP_verify_XXXX.txt 返回 200
  4. 若服务器云厂商与备案接入商不一致,先办「接入备案」
  5. CDN 若开启,需刷新校验文件路径并排除重写规则

C · 微信公众平台后台(需管理员扫码)

  1. 「接口权限」确认网页授权获取用户基本信息已生效
  2. 「功能设置 → 网页授权域名」填入目标域名(裸域,不带协议/端口/路径)
  3. 下载 MP_verify_XXXX.txt 放到 public/ 根目录,先验证可访问再提交保存
  4. 「基本配置 → IP 白名单」加入服务器出口 IP,等待数分钟生效
  5. 如用分享/扫一扫,另配「JS 接口安全域名」
  6. 微信开放平台绑定本服务号以获取 UnionID

D · 开放平台与合规

  1. PC 端微信登录:另申请「网站应用」并通过审核(独立 AppID)
  2. 核对备案主体、域名实名主体、微信认证主体、网站运营主体是否一致 / 有授权
  3. 替换 Demo 占位内容:公司全称、LOGO、业务文案、联系方式
  4. 补齐《用户协议》《隐私政策》《备案号》与公安备案信息
  5. 按最小必要原则说明头像/昵称/OpenID 的收集与使用

E · 代码与运行配置

  1. 在服务器创建 .env:WX_APPSECRET、PUBLIC_BASE_URL=https://目标域名、SESSION_SECRET、WX_MODE=live
  2. PUBLIC_BASE_URL 必须与网页授权域名完全一致,否则回调报 redirect_uri 参数错误
  3. 会话 / 用户从内存 Map 迁到数据库或 Redis(云函数必做,云服务器强烈建议)
  4. 加接口限流、日志脱敏、/healthz 探活与错误告警
  5. 真机在微信内跑一遍:授权 → 同意 → 回跳 → 刷新保态 → 退出 → 再登录

F · 验收兜底

  1. 非微信浏览器给出降级提示,或已接 PC 扫码登录
  2. 取消授权、state 重放、code 复用、网络超时都有友好提示
  3. 常见错误码预案:48001 / 10005 权限、10003 域名不一致、40029 / 40163 code、40164 IP 白名单
  4. 上线前用接口测试号或小范围灰度验证,再切正式号全量
06

还需要你提供 / 确认的信息

  1. 目标服务器的公网 IP 或主机名、SSH 用户名、密钥文件路径 —— 49.232.224.131 是否就是这次要部署的机器?本机 SSH 配置里只有 region-8.autodl.pro。
  2. 服务器所属云厂商(腾讯云 / 阿里云 / 自建 / 其他)—— 用于判断备案接入是否一致,以及是否需要固定出口 EIP。
  3. 目标访问域名用哪个?建议 m.tinghuan.com.cn 或 demo.tinghuan.com.cn,避免覆盖 www 现有主站。
  4. 是否有 DNSPod / 域名解析管理权限,能新增 A 或 CNAME 记录?
  5. SSL 证书是已有还是新申请?证书文件(pem + key)能否提供或由你在服务器上申请?
  6. 443 端口的安全组 / 防火墙是否能自行放行?服务器上是否已有其他站点占用 443?
  7. 公众号后台管理员是否能配合操作(网页授权域名、校验文件、IP 白名单保存时需管理员扫码)?
  8. 是否需要 PC / 非微信浏览器也能微信登录?这决定要不要另申请开放平台「网站应用」。
  9. 微信认证主体名称是什么?需与备案主体 / 网站主体核对(当前 WHOIS 注册人为「上海庭桓信息科技有限公司」,现有站点主体为「上海畅播智联数字科技有限公司」)。
  10. 登录用户是否需要长期保留(会员、订单、行为数据)?若需要,请指定数据库(MySQL / PostgreSQL / 云数据库 / Redis),以便替换内存会话。
  11. AppSecret 是否按建议重置?重置后旧密钥立即失效,需与线上其他系统协调。
07

建议执行顺序

1
信息确认

补齐第 06 节的服务器、域名、证书、权限信息;确定走云服务器还是云函数。

2
域名与 HTTPS

加子域解析 → 签发并部署证书 → 放行 443 → 确认 https://域名/ 可访问且不影响现有 www 主站。

3
部署代码

上传项目 → 服务器创建 .env(AppSecret 只在服务器)→ 启动 Node / PM2 或云函数 → /healthz 探活。

4
公众号后台配置

放好 MP_verify_XXXX.txt 并验证可访问 → 提交网页授权域名 → 配置 IP 白名单 → 等待生效。

5
切 live 并联调

WX_MODE=live,微信内真机实测完整授权链路与异常分支。

6
生产化收尾

会话/用户落库、限流与监控、真实文案与合规信息替换、密钥轮换、灰度放量。

08

AppSecret 的安全处置

!
该密钥已在对话中明文出现,建议重置一次

我没有把它写入项目的任何文件(避免落入仓库、镜像、日志或前端),也不会在页面与回复中完整展示。请在服务器上以环境变量注入,部署稳定后在公众号后台「基本配置」重置 AppSecret,并把新值直接写入服务器 .env —— 不要再经聊天工具传递。重置会使旧值立即失效,若其他系统仍在用旧密钥,需先协调。

  • 只在服务器 .env 或云厂商密钥管理 / 环境变量中存在;.env 不随代码打包、不进镜像、不入 Git。
  • 前端只包含 AppID 等公开信息;服务端日志只记录 errcode,不打印含密钥的请求 URL。
  • 当前目录不是 Git 仓库,.gitignore 尚不生效;若之后初始化仓库,确认 .env 已被忽略。
  • 重置后同步更新所有环境变量并重启服务,避免旧密钥残留造成 40001 / 40125 类错误。
✓
一句话结论

材料层面「身份凭证已齐、环境未就绪」。补齐证书/443、独立子域解析、公众号后台三项配置与服务器登录信息后即可上线;有现成服务器时方案 C 比云函数少改造,云函数可作为后续免运维演进方向。