微信生态接口层面对比梳理

核心概念区分

  • 微信公众号(WeChat Official Account)

    • 包括:服务号(Service Account)、订阅号(Subscription Account)

    • 侧重:内容传播、用户管理、提供服务

  • 微信小程序(WeChat Mini Program)

    • 轻量级应用,无需安装,体验接近原生 App
  • 网页开发(WeChat 内置浏览器中的 H5/JS-SDK)

    • 在微信内置浏览器中打开的网页,常用微信 JS-SDK 调用微信能力(拍照、分享、定位等)

微信公众号(服务号/订阅号)

  • 主要用途

    • 消息推送(被动回复、客服消息、模板消息)

    • 用户管理

    • 自定义菜单

    • 网页授权

    • 微信支付(服务商号/商户号关联)

  • 核心交互模式

    • 被动接收消息:用户向公众号发送消息(文本、图片、语音、视频、位置、链接),微信服务器以 POST 请求推送到开发者服务器 URL(需接入验证)

    • 主动发送消息:开发者通过公众号 API(需 access_token)主动给用户发送消息(客服消息、模板消息、群发消息)

  • 主要接口

    • 获取 access_token

    • 接收/回复消息:XML 格式

    • 发送客服消息:48 小时互动窗口内主动触达

    • 发送模板消息:服务通知(如订单状态变更)

    • 自定义菜单:创建底部菜单

    • 用户管理:获取用户基本信息、用户列表、设置备注

    • 网页授权(OAuth2.0)

    • JS-SDK:在公众号网页中调用分享、拍照、录音、支付等

  • 获取用户信息

    • 通过网页授权或被动消息中的 FromUserName(OpenID)配合服务端 API 获取

微信小程序(WeChat Mini Program)

  • 主要用途

    • 更丰富功能与更复杂界面,体验接近原生 App
  • 核心交互模式

    • 前端:WXML / WXSS / JS(运行于微信原生环境)

    • 后端:小程序逻辑(JS)、自建后端 API 或云开发(Cloud Development)

  • 主要接口

    • 客户端 API(wx.*):如 wx.request(网络)、wx.getUserProfile(用户信息)、wx.getLocation(位置)、wx.login(登录)等

    • 服务端 API:如通过 access_token 发送消息、内容安全检测、数据分析等

    • 云开发 API:云函数、数据库、存储等,无需自建服务器

  • 获取用户信息

    • 通过 wx.getUserProfile(需用户点击触发)

    • wx.login 获取 code 后,服务端调用 auth.code2Session 换取 openidsession_key

  • 支付

    • 使用小程序支付,前端调起 wx.requestPayment

网页开发(WeChat 内置浏览器 H5 / JS-SDK)

  • 主要用途

    • 在微信内置浏览器展示 H5 页面,并使用微信环境提供的能力
  • 核心交互模式

    • 标准 Web 技术:HTML / CSS / JavaScript

    • 微信 JS-SDK:

  • 主要接口(通过 JS-SDK)

    • 分享:自定义分享到朋友圈、发送给朋友的标题、链接、图片

    • 图像:拍照、相册选图、预览图片

    • 音频:录音、停止、播放

    • 智能:音频/图像识别

    • 设备信息:网络状态、地理位置

    • 界面操作:关闭窗口、隐藏/显示菜单栏和工具栏

    • 微信支付:在微信内置浏览器中调起支付

    • 卡券:添加、选择卡券

  • 获取用户信息

    • 通过绑定公众号的网页授权机制(OAuth2):前端跳转授权链接,用户同意后携带 code 回调,后端用 code 换取 access_token 与用户信息

关键区别总结

| 特性 | 公众号(服务号/订阅号) | 小程序(Mini Program) | 网页开发(H5 in WeChat Browser) |

| --- | --- | --- | --- |

| 运行环境 | 微信服务器与开发者服务器交互 | 微信客户端内的原生环境(小程序容器) | 微信内置浏览器(WebView) |

| 用户交互 | 被动接收消息,主动发送消息(客服/模板/群发) | 客户端主动调用微信 API,交互接近原生 App | 通过 JS-SDK 调用微信部分客户端能力 |

| 开发语言 | 后端语言(Java/PHP/Python/Node.js 等) | WXML/WXSS/JS(前端)+ 后端/云开发 | HTML/CSS/JS |

| 获取用户信息 | 网页授权(OAuth2)或依据消息中的 OpenID 调用 API | wx.getUserProfilewx.login → 服务端 auth.code2Session | 需绑定公众号,走网页授权(OAuth2) |

| 支付 | 公众号支付(JSAPI) | 小程序支付(wx.requestPayment) | H5/JSAPI 支付(微信内调起) |

| 主要 API | 消息管理、用户管理、自定义菜单、模板消息、网页授权、JS-SDK | 客户端 API(wx.*)、服务端 API、云开发 API | JS-SDK(wx.configwx.ready、分享/设备等) |

| 用户体验 | 消息流内交互 | 接近原生 App | 普通网页体验 + 微信能力 |

| 用户入口 | 聊天列表、朋友圈、扫码、搜索、菜单 | 下拉小程序面板、发现-小程序、搜一搜、扫码、分享卡片 | 链接、公众号菜单、图文消息链接 |


简单来说

  • 公众号:偏“服务器 ↔ 服务器”通信,侧重消息与服务。

  • 小程序:偏“客户端 ↔ 服务器/云”通信,是一个完整的 App。

  • 网页开发:在微信浏览器里的网页,通过 JS-SDK “借力”调用微信能力。