微信小程序开发入门

微信开放平台作用

概述

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

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

功能板块主要作用面向的主要对象
移动应用(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设置的页面。开发者未设置时则直接关闭小程序。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全核心技术要点速查手册:面试与工作实战必备总结

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

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

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

学网络安全,一张清单就够了!五大核心技术通俗解析与入门路径

网络安全技术是保护网络不受未经授权访问、破坏或盗取信息的重要手段。以下是五种零基础也能看懂的网络安全技术: 1.防火墙技术:防火墙是一种网络安全设备,用于监控和控制进入或离开网络的流量。它可以识别不安全的数据包,并阻止…

FeignRequestInterceptor 原理详解

FeignRequestInterceptor是 OpenFeign 的请求拦截器机制,其工作原理如下:1. 核心设计模式责任链模式:Feign 通过拦截器链在请求发送前和接收后执行自定义逻辑。// 拦截器接口定义 public interface RequestInterceptor {void apply(RequestTe…

网络安全保姆级入门:手把手详解五大核心技术,小白也能快速上手

网络安全技术是保护网络不受未经授权访问、破坏或盗取信息的重要手段。以下是五种零基础也能看懂的网络安全技术: 1.防火墙技术:防火墙是一种网络安全设备,用于监控和控制进入或离开网络的流量。它可以识别不安全的数据包,并阻止…

信息安全的核心支柱:深入解析网络安全技术体系与实践

一、网络安全基础 OSI参考模型与TCP/IP开放模型对比 应用层 应用层 TehnetHTTPSMTPFTP DNSTFTPSSH 表示层 会话层 传输层 传输层 TCPUDP网络层 网络层 IP协议簇(RIP、OSPF、SNMP、ICMP) 数据链路层 物理和数据链路层 以太网 令牌…

《深入剖析 NumPy ndarray:为何比 Python List 快 50~100 倍?》

《深入剖析 NumPy ndarray:为何比 Python List 快 50~100 倍?》 一、开篇引入:从 Python 到 NumPy 的速度革命 Python 以简洁优雅的语法和强大的生态系统闻名,从 Web 开发到数据科学、人工智能,它几乎无处不在。然而&…

《深度剖析 Pandas GroupBy:底层实现机制与性能瓶颈全景解析》

《深度剖析 Pandas GroupBy:底层实现机制与性能瓶颈全景解析》 一、开篇引入:从 Python 到 Pandas 的数据处理革命 Python 的简洁语法和强大生态让它成为数据科学的首选语言,而 Pandas 则是其中最耀眼的明星。无论是金融分析、科研数据处理&…

百考通AI:源码宝库+智能答辩,毕业季的终极“外挂”

作为一名计算机专业的学生或开发者,你是否经常在这样的场景中挣扎:毕业设计截止日期临近,却苦于找不到合适的项目源码作为参考;答辩在即,却要花费大量时间熬夜制作PPT。这种“白天敲代码,晚上做PPT”的高强…

百考通AI:源码宝库+智能答辩,毕业季的终极“外挂”

作为一名计算机专业的学生或开发者,你是否经常在这样的场景中挣扎:毕业设计截止日期临近,却苦于找不到合适的项目源码作为参考;答辩在即,却要花费大量时间熬夜制作PPT。这种“白天敲代码,晚上做PPT”的高强…

一站式办公平台 vs 单一即时通讯软件:企业该如何抉择?

在数字化转型的十字路口,企业管理者和IT负责人往往面临一个经典的选型难题: “我们是应该购买一个包罗万象的‘一站式办公平台’,还是选择一个专注极致沟通的‘单一即时通讯软件’?” 前者似乎能解决所有问题,但往往…

分享一个MySQL 8.0复制架构主从自动切换脚本

/* by 01022.hk - online tools website : 01022.hk/zh/formatc.html */ #!/bin/bash # # 基于GTID的MySQL 8.0 一主一从架构主从切换脚本 # 版本: 3.0 # 优化内容: 全变量配置、增强可配置性、改进错误处理 # # >>>>>>>>>>>> 第一部分&a…

告别论文问卷烦恼!百考通AI带你轻松搞定问卷设计与分析

作为一名刚经历过毕业论文“洗礼”的学长,我深刻理解同学们在设计问卷时的无助感。记得我当时为了设计一份像样的问卷,前后修改了十几遍,结果还被导师指出“结构混乱”、“信效度不足”。 幸运的是,现在有了像百考通AI这样的智能…

跨境TRO侵权是什么意思,和解最低金额是多少,如何解决,卖家必须了解的跨境TRO侵权知识

【行业预警】2025年跨境电商圈最让人揪心的事,莫过于TRO案件的指数级爆发!截至2025年12月,全年TRO案件总量飙升至3300起,比2024年翻了数倍。无数卖家遭遇账户冻结、货款被扣、店铺瘫痪,一夜之间从盈利到“血本无归”。…

智能体工程全指南:从概念到落地,深度复盘发展现状,收藏这一篇就够了!

引言 (Introduction) 随着我们步入 2026 年,组织不再询问“是否”需要构建 Agent(智能体),而是关注“如何”可靠、高效且规模化地部署它们。我们调研了 1,300 多名专业人士,以了解他们如何演进 AI Agent 的用例以及如何…

深度学习赋能学术写作:百考通AI如何重塑科研全流程体验

深夜的实验室,只有键盘敲击声与偶尔的叹息交织。屏幕上的文献密密麻麻,而文档里的字数增长缓慢。这可能是许多科研工作者与学生再熟悉不过的场景。 从选题的迷茫、文献的浩瀚、撰写的艰辛,到降重的烦恼、格式的繁琐——学术写作是一条充满挑…

TOON:一种为大模型设计的JSON压缩型数据结构

目录 TOON:一种为大模型设计的JSON压缩型数据结构 一、精准定义,什么是 TOON? 1、JSON 数据格式的局限性 2、TOON 的结构与优势 3、TOON 数据结构的主要特征 4、媒体类型与文件拓展名 二、举例:JSON 与 TOON 描述同一组数据…

AI圈炸锅!GraphRAG让大模型不再“一本正经地胡说八道“,小白程序员也能上手的知识图谱增强技术!

前言 传统RAG系统通过检索——生成两阶段法有效缓解了大模型知识陈旧和幻觉问题,但是在处理复杂问题仍存在局限。依赖非结构化的文本向量的检索方式,很难捕捉到实体之间的深层关系,导致上下文不精确、信息碎片化,甚至有发模型幻觉…

避坑!外观专利侵权判定不看百分比!3步实操法+工具实测,跨境卖家/产品人必藏

做跨境产品或工业设计的朋友,大概率都踩过这个坑:产品刚小批量量产,就收到平台侵权投诉;爆款Listing刚起量,TRO临时限制令直接冻结资金;甚至只是参考竞品改了个细节,就被起诉索赔——核心问题都…

开题报告智能构建:百考通AI如何重塑论文写作的起点

凌晨三点,实验室的灯光依旧明亮。李博士盯着屏幕上那篇修改了第八遍的开题报告,眼睛干涩,思路枯竭。文献综述部分总是被导师指出“脉络不清”,研究方法和实施计划需要更加具体,而时间表安排也不够合理。这是许多高校学…