news 2026/4/21 22:33:54

微信小程序开发入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微信小程序开发入门

微信开放平台作用

概述

微信开放平台的核心作用,是为开发者和企业提供官方工具和接口,将自己的应用、服务与微信生态深度整合。它不只是为微信服务,而是连接外部与微信的关键桥梁。

下面的表格帮你快速了解它的主要功能和不同开发者的作用:

功能板块主要作用面向的主要对象
移动应用(APP)接入允许外部APP实现微信登录、分享内容、微信支付等功能。独立APP的开发者
网站应用(Web)接入允许PC或手机网站使用微信登录功能,获取用户基本信息。网站开发者
第三方平台提供批量管理、代开发等工具,帮助服务商为其他商家开发和管理小程序或公众号。微信生态的服务商
公众号提供接口,让订阅号/服务号具备消息回复、菜单管理、用户管理等高级能力。企业、媒体、个人
小程序提供全套技术框架,让开发者发布无需下载、体验接近原生APP的应用企业、商家、开发者
其他辅助平台与服务包含微信云开发、对话开放平台等,提供云端资源、AI对话能力等专项服务。有特定需求的开发者

注:关于第三方应用“分享到朋友圈”功能,根据微信最新的平台规范,此能力已不对新应用开放。目前,仅支持分享到微信好友或群聊。搜索结果中提到的朋友圈分享是旧有信息,请注意甄别。

不同角色如何利用它

  • 对于普通开发者或中小企业:可以通过它快速为你的APP、网站接入微信登录和支付,或者开发自己的公众号、小程序,利用微信流量触达用户。

  • 对于服务商或技术公司:可以申请成为第三方平台,为无法自主开发的海量商家提供小程序搭建、托管和运营服务。

  • 对于政府或公共服务机构:可以利用其提供的行业工具箱(如人脸核验、非税支付等),开发政务小程序,提升服务效率和便捷性。

入门与资源

想开始使用,可以访问微信开放平台官网,注册开发者账号。针对具体功能,微信官方提供了详细的开放文档,这是最权威的技术指南。

微信硬件平台作用

微信硬件平台官方文档

1. 概述

微信硬件平台为硬件设备提供了连接微信用户的能力和身份。接入微信硬件平台的设备,可添加至用户的设备页中,微信用户可以在设备列表里查看和控制设备。

2. 微信运动

运动类设备,如运动手表、运动手环等,接入微信硬件平台后,用户可通过设备向微信传入运动数据,运动数据将在微信运动排行榜页、个人详情页及微信设备页进行展示,并显示数据来源。

3. 发送消息到设备

硬件设备接入微信硬件平台后,可接入发送消息到设备能力,用户在聊天界面中长按特殊类型的消息,可通过“打开”入口向设备发送此消息。目前已支持向硬件设备发送文件、图片类消息,详见开发文档。

微信小程序

appId、appSecret、session_key

好的,这三个参数是微信小程序后端开发的核心凭证。它们用于验证你的应用身份、调用微信接口并与用户建立联系。具体对比如下:

参数是什么作用与特点保密级别与注意事项
appId小程序唯一身份证。微信为每个小程序分配的全局唯一标识。标识你的小程序身份,调用任何微信接口都必须携带。可公开:需在前端和配置文件等中使用,但本身不泄露核心机密。
appSecret小程序核心密码。与appId配对的密钥。换取后台接口调用凭证access_token的核心凭据之一,用于执行敏感操作(如获取用户openid)。绝密必须存放在后端服务器,严禁写入前端或公开传输,一旦泄露应立即重置。
session_key(而非sid)用户会话密钥。在用户登录后,由微信服务器生成并返回的加密密钥。1.解密用户敏感信息(如通过wx.getUserInfo获取的加密数据)。
2. 用于校验用户登录态(wx.checkSession)。
高度敏感:应仅保存在后端服务器(如与用户openid关联存储),用于服务端解密,切勿下发到小程序前端

注:通常所说的sidsessionId一般指开发者服务器自行生成的会话标识,用于在业务侧维持用户的登录状态,这与微信官方返回的session_key是两回事。

它们如何协同工作?

以一个完整的用户登录流程为例,可以清晰地看到这三个凭证的协作关系:

如上图所示,appIdappSecret是服务器向微信证明“你是谁”的凭证,而换回的session_key则是服务器处理该用户数据的工具。

核心要点与建议

  1. 安全第一appSecretsession_key是生命线,必须通过你的后端服务器保护,绝不能前端化。

  2. 获取位置appIdappSecret微信公众平台>开发>开发设置中查看和管理。

  3. openid的关联:用户的openid正是通过上述登录流程,由后端使用appIdappSecret换取而来,它是你业务系统关联微信用户的标识。

openId与unionId区别

为了让你更全面地理解openId,这里将它和另一个常用IDunionId的关键信息对比如下:

特性openIdunionId
是什么同一用户在同一小程序/公众号内的唯一标识同一用户在同一个微信开放平台帐号下的唯一标识
唯一性范围单一应用(例如,只在你开发的小程序内唯一)整个开放平台账号(名下所有小程序、公众号、移动应用等)
获取条件用户访问小程序,开发者即可通过接口获取。用户需满足以下条件之一:
1. 关注了同一开放平台帐号下的某个公众号。
2. 在某个移动应用登录。
3. 小程序本身绑定到了开放平台。
核心用途识别用户,在小程序内建立用户体系,进行数据关联。打通用户体系,识别出不同应用中的同一个用户。

重要说明:根据微信官方规则,openIdunionId都是高度敏感的用户身份信息,需要严格保密,不可明文传输或存储在客户端(如小程序前端),而应存放在你的服务器上。

开发中如何获取 openId

获取openId是标准流程,你需要:

  1. 在小程序前端调用wx.login()获取一个临时登录凭证code

  2. 将这个code发送到你自己的后台服务器

  3. 你的服务器用code、小程序AppIDAppSecret,调用微信服务器的接口换取openidsession_key

简单来说,获取openId需要在用户授权登录后,通过你的服务器与微信服务器进行安全通信来完成。

非硬件设备开发

参考​​​微信小程序官方文档、微信支付官方文档

硬件设备开发

硬件设备接入

提供硬件设备联网、控制、通讯等能力的小程序,需要先完成设备接入,然后才可以使用小程序提供的硬件能力(例如「设备消息」、「音视频通话」)等。接入步骤如下:

1. 申请设备类目
2. 开通硬件设备能力
3. 添加设备类型
4. 获取设备 model_id
设备注册成功后,可获得平台分配的 model_id ,model_id 是调用小程序设备能力相关接口的重要凭证。获取 model_id 后,小程序可按照相关文档指引调用「设备消息」等硬件能力。

设备消息

「小程序设备消息」是一种长期订阅类型的「小程序订阅消息」,需要先进行「设备接入」才能够使用。

用户在使用设备过程中,需要关注某些由设备触发且需要人工介入的事件。例如安防摄像头检测到异常,设备耗材不足,设备发生故障等等。

「小程序设备消息」能力指的是,只要用户在小程序内订阅通知,开发者就可以将这些事件以订阅消息的形式发送给用户。消息在微信内的产品形态,目前以「服务通知」形式呈现。

开发参考设备消息开发

音视频通话+摄像头

下面仅说明云对云的方式接入,其他方式参考官方文档。

开发前准备

小程序想要使用音视频通话能力能力,需要在小程序管理平台申请开通「小程序音视频能力」设备能力。详见「设备接入」文档和微信小程序音视频通话(for 硬件) 使用手册中的流程指引,并关注《硬件 VoIP 审核验证要求》。

完成接入后,开发者可获得由平台分配的 model_id。model_id 对应一种设备类型,是调用小程序设备能力相关接口的重要凭证。

获取 model_id 后,开发者可以调用获取设备票据接口获取 snTicket,用于后续的设备验证流程。

用户授权设备

设备如果要向用户发起通话,需要用户在手机微信端先对设备进行授权。

1. 请求授权

用户授权前,需要从开发者的后台通过获取设备票据 接口拿到设备票据 snTicket。拿到 snTicket 后,需要在小程序内调用 wx.requestDeviceVoIP 请用户进行授权。

注意:

  • 如果用户拒绝授权或在设置页中取消授权,再次调用requestDeviceVoIP不会出现授权弹框。开发者应引导用户在设置页中手动开启。
  • 授权框中「设备名字」= 「deviceName」 + 「modelId 对应设备型号」。如「devcieName」为「iot」,modelId 对应设备型号是「校园电话」,最终名字为「iot 校园电话」
snTicket介绍

snTicket(设备票据)是一个由微信硬件平台签发的临时凭证,核心作用是在发起特定设备交互前,验证此次操作的合法性与时效性,以保障安全。

为了让你快速了解,我将它的关键信息整理如下:

关键特性具体说明
核心用途作为临时凭证,用于授权设备进行特定交互前的安全验证。
主要应用场景1.设备音视频通话授权:用户授权设备可向其发起微信音视频通话。
2.设备订阅消息授权:用户授权设备可向其发送订阅消息。
有效期5分钟。超过后需重新获取。
如何获取需在你的设备开发者后台,调用微信硬件平台的相应接口生成(如hardwareDevice.getSnTicket接口)。
如何使用在小程序中调用特定授权接口(如wx.requestDeviceVoIPwx.requestSubscribeDeviceMessage)时,作为必要参数传入。

snTicket工作机制:设备注册->(当需要授权时)服务端获取snTicket->前端使用snTicket发起授权->用户完成授权

2. 处理授权失效的情况

用户在授权成功后,下列操作可能导致授权失效:

  • 清空授权:在最近使用中删除小程序,用户的授权记录会被清空
  • 取消授权:用户同意授权后,小程序设置页面中会出现「语音、视频通话提醒」模块,点击进入后用户可以管理已授权的设备,并可以取消授权。(需要微信客户端 >= 8.0.30 支持)

为了保证用户能够正常使用音视频通话能力,开发者需要处理授权失效的情况。在发起通话前,建议开发者通过第 4 节所述方式检查授权状态。并在必要时提醒用户重新授权:

  • 清空授权:可以直接调用requestDeviceVoIP请用户进行重新授权。
  • 取消授权/用户拒绝授权:再次调用requestDeviceVoIP不会出现授权弹框。开发者应引导用户在设置页中手动开启授权开关。

开发者可以通过以下方式判断用户的授权状态:

  • 通过发起通话失败的错误码。使用插件发起通话时,若用户未授权设备,会返回 errCode: 9。(若使用设备组,请确认设备组内存在此设备)
  • 在用户使用小程序时,查询授权状态。参见第 4 节。
3. 批量授权

如果需要批量授权,可以创建设备组。在用户授权和设备进行音视频通话时,可以批量授权给一个设备组,而无需对每台设备重复授权。

例如,在校园电话场景下,同一所学校可能有很多台话机。可以将同一所学校的设备加入到一个设备组,并使用 wx.requestDeviceVoIP 对整个设备组进行授权。

注意:对于设备组,deviceName 显示为创建设备组时指定的名称,授权时暂不允许自定义。

4. 授权状态查询

开发者可以在用户使用小程序时,通过下列方式查询授权状态。根据小程序统一的授权体系设计,不提供后台接口查询授权状态,也不提供用户操作授权的事件回调。

4.1 当前用户授权的设备(组)

查询当前登录的用户同意/拒绝或取消授权了哪些设备(组)。

手机微信端小程序内调用 wx.getDeviceVoIPList,可用于在手机端发起通话前检查授权状态。

4.2 当前设备是否被授权

根据用户 openId,查询指定用户是否授权设备(组)。

由插件提供 getIotBindContactList 接口,一般在设备端使用,可用于在设备端发起通话前(如联系人页面)检查授权状态。

设备呼叫手机微信

在用户对设备进行授权后,设备可以向已授权用户发起音视频通话,用户在微信内打开小程序进行接听。

硬件开发者需建立小程序用户 openId、小程序 appId、硬件设备之间的关联。用户在手机端授权后设备才可拨打。

手机微信端接听通话

用户在手机端可以收到「响铃+振动」的强提醒通知,点击接听按钮后,会启动小程序并直接进入「VOIP 通话」插件页面接听通话。

完成通话后,微信客户端内会显示本次通话的信息与「关闭」按钮,用户点击「关闭」按钮后再跳转开发者调用setVoipEndPagePath设置的页面。开发者未设置时则直接关闭小程序。

开发者可以自定义接听页面按钮,以及通话结束跳转页。详情请参考插件文档

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 16:01:57

网络安全技术核心框架:一文理清从原理到实践的知识体系

1.网络安全的概念 网络安全的定义 ISO对网络安全的定义:网络系统的软件、硬件以及系统中存储和传输的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,网络系统连续可靠正常地运行,网络服务不中断。 网络安全的属…

作者头像 李华
网站建设 2026/4/20 11:41:47

Aurix TC387 Can配置记录

一、MCMCAN介绍fSYN is supplied from fMCANH and fASYN is supplied from fMCAN from CCU. fSYN is used as the clock source for Register and RAM interface,fASYN is used to generate the nominal and fast CAN FD baudrates. It is recommended to use fASYN as 80, 40,…

作者头像 李华
网站建设 2026/4/19 20:45:23

原理:XinServer 是如何实现开箱即用的后端服务的?

原理:XinServer 是如何实现开箱即用的后端服务的? 不知道你有没有过这种经历:产品经理或者客户拿着一个原型图过来,说“咱们这个App/小程序/管理后台,下个月能上线吗?”你一看,好家伙&#xff0…

作者头像 李华
网站建设 2026/4/18 14:28:54

前端:VUE2

vue官网:https://cn.vuejs.org/服务端渲染 服务器浏览器服务器浏览器#mermaid-svg-7LrgJWuVc08jOSgy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@key…

作者头像 李华
网站建设 2026/4/18 7:20:33

2027年80%平台将出局?数藏行业合规化与技术革命双轨突围指南

引言:当数字藏品陷入“信任危机”2025年,数字藏品市场迎来关键转折点。一方面,全球市场规模突破千亿美元,中国用户规模超2亿;另一方面,行业乱象频发:某头部平台因二级市场炒作被立案调查&#x…

作者头像 李华