微信第三方平台开发重点概念流程梳理

标题

  • 微信开发的亿点点概念
  • 第三方平台代开发流程
    • 亿些概念
    • 开发流程
  • 代公众号使用JS SDK
    • 一些概念
    • 具体流程
    • 引用

微信开发的亿点点概念

AppID:AppID是不同类型的产品的账号ID,是账号的唯一标识符。例如公众号的AppID、小程序的AppID、开放平台的AppID、第三方平台的AppID、移动应用的AppID、网站应用的AppID、小商店的AppID等等。

openid:openid是微信用户在不同类型的产品的身份ID,微信用户访问公众号、小程序、移动应用、网站应用、小商店等都会有唯一的openid,但同一个微信用户访问不同的产品生成的openid也是不一样的。例如,对于不同公众号,同一用户的openid不同;同理,对于不同的小程序,同一用户的openid也是不同的

unionid:是微信用户在同一个开放平台下的产品的身份ID。
如果开发者拥有多个移动应用、网站应用、和公众账号(即公众号和小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号,用户的 UnionID 是唯一的。即,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

IP白名单

  • IP白名单是一项用于限制谁可以访问公众号后台服务器的安全措施。当你配置IP白名单时,只有指定的IP地址可以访问你的公众号后台服务器,其他IP地址将被拒绝。
  • IP白名单通常用于保护服务器端的接口和资源,确保只有受信任的服务器可以与公众号后台进行通信。
  • 配置IP白名单对服务器端接口的调用有重要作用,但对于网页端的前端开发和使用微信JS-SDK,IP白名单并不足够。

JS接口安全域名

  • JS接口安全域名是一项用于控制网页端(微信内置浏览器中的网页)访问微信JS-SDK的安全措施。
  • 当你在微信公众号后台配置JS接口安全域名时,你告诉微信哪些域名的网页可以安全地使用微信JS-SDK。只有在配置的安全域名下的网页才能够正常使用微信JS-SDK的功能。
  • 这是为了防止恶意网页或未经授权的网页访问敏感的微信功能,如分享、支付等。配置JS接口安全域名有助于确保只有受信任的网站可以使用微信JS-SDK功能。

总结:IP白名单用于服务器端接口的安全控制,而JS接口安全域名用于前端网页的安全控制,以防止恶意网页滥用微信JS-SDK的功能。配置这两个安全措施是为了提高公众号的安全性,但它们用于不同的方面,因此需要同时配置以全面确保安全,也可以理解为IP白名单主要用于管理后端服务器的访问,而JS接口安全域名主要用于管理前端网页(微信内置浏览器中的网页)对微信JS-SDK的访问。这两个安全措施分别控制前端和后端的访问权限,以确保公众号的安全性。前端网页可以通过JS接口安全域名配置来限制哪些网页可以使用微信的功能,而后端服务器可以通过IP白名单来限制哪些服务器可以与微信后台通信。这两个措施协同工作,以提高公众号的安全性。

解释一下下面这张图:

在这里插入图片描述

通过上面的概念我们思考下面这样一个场景,商家旗下有8个小程序,然后某个用户同时使用了这8个产品,依据上面的openid的介绍,该用户如果想要正常使用这8个小程序,就需要注册8个账号,十分繁琐,小程序之间没有任何的账号登陆通用性,所以就出现了上图中说的商家开放平台账号,该账号可以将这8个小程序“连”在一起,此时用户访问这8个小程序的时候,全部会拥有相同的unionid,只用注册一遍就可以同时使用这8个产品,方便了用户,也方便了开发人员,而上图的另一个概念——服务商开放平台账号,在我看来是一个拥有开发能力的团队的账号,这个账号的作用是代替商家去开发他们的小程序、公众号等,因为商家可能是一群不懂编程的人,所以他们只需要简单的给我们(服务商开放平台账号)一个授权,我们就可以通过微信的相关接口替他们开发他们的公众号或者小程序。

总结:

服务商:一个懂代码的团队

商家:拥有一堆没有什么功能的小程序、公众号的群体,一般是不懂代码的群体

业务场景:商家想在公众号中添加一些功能,所以授权给服务商,服务商得到了商家的授权,即可对绑定在商家开放平台账号下的所有小程序、公众号进行新功能的开发

第三方平台代开发流程

亿些概念

access_token:使用商家小程序、公众号的appid和appsecret获得的一个参数,调用微信接口的时候用,通常是商家自己开发的时候用

component_access_token:代开发的重要参数,是使用服务商的Appid 和 secret 以及 component_verify_ticket获得的一个参数,通过该参数才有资格去调用那些只开放给商家的接口(前提是商家已给服务商授权)

component_verify_ticket:且当成微信证明该服务商可信度的一个密钥吧,每10分钟向服务商注册开放平台账号填写的开发资料中的接口推送该值,服务商需要自行编写接口进行解密取得该参数,没有此参数,后面一切都是白搭

authorizer_appid::就是商家的小程序、公众号的appid

authorizer_access_token: 是在获得商家授权的情况下,使用 component_access_token 和授权账号 authorizer_appid 生成的,用来调用官方接口,指的是服务商代商家(服务商以商家身份)调用接口,常用于第三方开发模式,这个参数是实现服务商代商家开发小程序、公众号前置流程中的最后一个参数,取得该参数说明你已经胜利了一半了,整个流程你已经清楚啦!!!

开发流程

服务商注册第三方平台账号 ▶️编写获取component_verify_ticket的接口获取该值▶️通过接口文档获取component_access_token▶️通过接口文档获取pre_auth_code▶️在自己的网站向商家暴露授权链接或者授权二维码(文档里进行构造)▶️商家进行扫码给第三方服务商授权▶️第三方服务商通过商家的授权成功回调URL中获取auth_code▶️使用auth_code获取授权信息,授权信息中比较重要的有authorizer_access_tokenauthorizer_refresh_tokenfunc_info这三个参数▶️完成了一系列流程,后续拿着获取到的这些参数基本可以调用开放的任何接口,下面附上微信开放平台官方文档的流程,大家可以加以对照(阐述的是自建授权链接方式,至于官方云服务方式,大家创建微信第三方平台账号的时候自会知晓其中的含义),有不理解的评论区戳我!!!
在这里插入图片描述

代公众号使用JS SDK

概念:大家平时使用微信的时候可以发现在微信的内置浏览器中可以使用例如向照片上传、录音的功能,其实这些功能就是微信官方提供的一些SDK,便于公众号开发者直接进行调用,减轻了开发者的负担,现在由于第三方服务商代商家开发公众号,所以这部分调用SDK的方式会与以往有所不一样(以往是通过公共号的AppIDAPPSecret获取相关参数进行调用),因为第三方无法获得诸如APPSecret这类的敏感参数,所以产生了一种专门面向第三方服务商调取SDK的方法,第三方服务商可以调用这些SDK对商家公众号进行开发,例如公众号菜单、回复消息等等功能。

一些概念

授权事件接收配置:微信发送给网站的一些信息的接收URL,例如前面所说的component_verify_ticket,这里就写component_verify_ticket的接口地址,然后接收微信推送至该接口的信息,进行解密,最终获取component_verify_ticket

消息与事件接收配置:第三方服务商获取微信推送给授权给服务商的公众号的消息的接口地址

消息校验Token:服务商自己定义,用于开发者在代替公众号或小程序接收到消息时,用此Token来校验消息

消息加解密Key:服务商自己定义,用于开发者在代替公众号或小程序收发消息过程中使用。必须是长度为43位的字符串,只能是字母和数字

授权发起页域名:前面不是说商家需要通过服务商提供的链接或者二维码的方式对服务商第三方平台进行授权,第三方平台才能进行代公众号开发嘛,二维码或者链接所处的域名就填在这里,换句话说,不在这个域名下的链接或者二维码扫描或者点击均无效。

公众号开发域名:个人认为可以类比于非第三方平台开发公众号时在公众号后台填写的JS接口安全域名,也就是说调用JS SDK的时候必须处在该域名下才可以正常调用

小程序服务器域名:暂时没用到,不好讲解

小程序业务域名:暂时没用到,不好讲解

授权测试公众号/小程序列表:第三方服务商在代公众号开发完成后可以使用列表中的公众号进行测试,例如(SDK的调用是否正常、能否授权成功等等)

白名单IP地址列表:个人认为可以类比于非第三方平台开发公众号时在公众号后天填写的IP白名单,前面填写的公众号开发域名保证了前端JS接口可以调用JSSDK,而这里的白名单则可以理解为可以调用后端接口,一个管前端、一个管后端(个人理解)

具体流程

说明:具体流程可以参考微信文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1,https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Before_Develop/Official_Accounts/js_sdk_instructions.html讲的还是很清楚的,这里只做简要的重点强调

获取jsapi_ticket 方式的不同

原方式:通过公众号的AccessToken获取

第三方平台方式:通过授权公众号Token(authorizer_access_token)进行获取

备注:其余流程与普通调用JS SDK的方式一样,参考微信文档:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Before_Develop/Official_Accounts/js_sdk_instructions.html和https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

引用

  1. https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/getting_started/terminology_introduce.html

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

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

相关文章

OceanBase:Zone管理

OceanBase 集群由若干个 Zone 组成。从物理层面来讲,一个 Zone 通常是一个独立的物理部署单元,可以是一个数据中心(IDC)或者云上的一个 Zone(可用区),也可以是一个单独的机架(Rack&a…

2023.11.15 hive sql之函数标准,字符串,日期,数学函数

目录 一.函数分类标准 二.查看官方函数,与简单演示 三.3种类型函数演示 四.字符串函数 1.常见字符串函数 2.索引函数 解析函数 五.日期函数 1.获取当前时间 2.获取日期相关 3.周,季度等计算 4.时间戳 六.数学函数 一.函数分类标准 目前hive三大标准 UDF:&#xff08…

Apache Hive源码阅读环境搭建

前置软件: JDK 1.8 Maven 3.3.9 1 下载源码 # 下载源码 git clone https://github.com/apache/hive.gitcd hive# 查看标签 git tag# 切换到要阅读的指定版本的tag git checkout rel/release-2.1.02 编译源码 mvn clean install -DskipTests执行报错 日志如下 E…

VisualBox7.0.12 主机和宿舍互PING设置

设置成桥接模式 主机设置 虚拟机设置

搜索引擎ElasticSearch分布式搜索和分析引擎学习,SpringBoot整合ES个人心得

ElasticSearch Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elas…

stable diffusion到底是如何工作的

stable diffusion简单入门 stable diffusion是一个文生图模型,主要由CompVis、Stability AI和LAION的研究者们创建。这个模型主要是在512X512分辨率的图像上训练的,训练数据集是LAION-5B,该数据集是目前可访问的最大的多模态数据集。 在这篇…

Android---网络编程优化

网络请求操作是一个 App 的重要组成部分,程序大多数问题都是和网络请求有关。使用 OkHttp 框架后,可以通过 EventListener 来查看一次网络请求的详细情况。一次完整的网络请求会包含以下几个步骤。 也就是说,一次网络请求的操作是从 DNS 解析…

C++类与对象(1)—初步认识

目录 一、面向过程和面向对象 二、类 1、定义 2、类的两种定义方式 3、访问限定符 4、命名规范化 5、类的实例化 6、计算类对象的大小 7、存储方式 三、this指针 1、定义 2、存储位置 3、辨析 四、封装好处 一、面向过程和面向对象 C语言是面向过程的&#xf…

4.6每日一题(多元函数的隐函数求导)

三元方程确定的二元函数类型的隐函数 方法一:两边对x求偏导,把y看成常数 注:z可以把x和y同时代入求出答案 方法二:带公式

Python爬虫教程:从入门到实战

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python爬虫教程:从入门到实战,文章3800字,阅读大约15分钟,大家enjoy~~ 网络上的信息浩如烟海,而爬虫(…

学习指南:如何快速上手媒体生态一致体验开发

过去开发者们在使用多媒体能力时,往往会遇到这样的问题,比如:为什么我开发的相机不如系统相机的效果好?为什么我的应用和其他的音乐一起发声了,我要怎么处理?以及我应该怎么做才能在系统的播控中心里可以看…

计算机组成原理-双端口RAM和多模块存储器

文章目录 存取周期总览双端口RAM多体并行存储器低地址交叉编址有多少个存储体合适(体号)多模块存储器(多体存储器)总结实际场景 存取周期 总览 双端口RAM RAM:用于主存或高速缓存,断电数据丢失 多体并行…

qsort函数使用方法总结

目录 一、qsort函数原型 二、compar参数 三、各种类型的qsort排序 1. int 数组排序 2. 结构体排序 3. 字符串指针数组排序 4. 字符串二维数组排序 四、回调函数 1. 什么是回调函数 2. 为什么要用回调函数? 3. 怎么使用回调函数? 4.下面是…

分支限界法(1)--旅行商问题

一、概述 有n个城市,旅行者要访问所有n个城市,最终回到起始点,假设起始点给定为1,城市间距离已知,求能够完成旅行的最短距离。题干如下图。 算法:分支限界法,使用队列进行bfs搜索。 二、代码 i…

低代码在ERP中的理解与应用:提升开发效率与业务灵活性

企业资源规划(ERP)指通过融合不同部门的信息和流程,提升企业效率、融洽运营的管理体系。ERP系统通过提供一套集成化应用程序,助力企业管理工作流程,包含选购、库存、销售、生产规划等。 低代码(Low-Code&a…

在listener.ora配置文件中配置listener 1527的监听并且使用tnsnames连接测试

文章目录 前言:一、命令语句实现1、监听介绍2、编辑 listener.ora 文件:寻找配置文件对配置文件进行配置 3、重启监听4、配置TNS 二、图形化界面实现1、listener.ora文件配置2、tnsnames.ora文件配置 三、测试连接 前言: 命令实现和图形化实…

遥感数据

在研究中,我们常需要遥感数据。在下面的网站中,可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站: 通常,在Additional Criteria中,可以下载遥感数据。 不过,这个选项…

安顿APP3.0全新升级,引领智能穿戴健康革新,专注预警疾病风险

随着人们生活水平的提高和工作压力的增加,心脑血管疾病已经成为现代社会的严重问题,特别是心梗、脑卒中等疾病已经开始夺去年轻人的生命。 据报道,近年来,多位年轻人因心脑血管疾病突发去世,如42岁的知名男演员、30岁的…

【C刷题】day7

🎥 个人主页:深鱼~🔥收录专栏:【C】每日一练🌄欢迎 👍点赞✍评论⭐收藏 一、选择题 1、以下对C语言函数的有关描述中,正确的有【多选】( ) A: 在C语言中,一…

java--拼图游戏

1、了解拼图游戏基本功能: 拼图游戏内容由若干小图像块组成的,通过鼠标点击图像块上下左右移动,完成图像的拼凑。 2、拼图游戏交互界面设计与开发: 通过创建窗体类、菜单、中间面板和左右面板完成设计拼图的交互界面 &#xff…