微信开放平台之第三方授权开发
由于最近业务需求客户让我们帮忙开发微信公号。于是登录了客户的公号 发现在他的公号设置里面已经写满了页面授权这些东西,因为这个公号的听说是找了很多开发公司帮他们开发,反正就是东一个西一个而且哪个都不能删。开发过的都知道页面授权域名这个东西最多只能填写两个(老版本的时候只能写一个。老马的手下已经大发慈悲的升级了一下能写两个了)但这个东西非常重要,多的也不解释了。dddd
这个需求到我手上的时候我也头疼半天。也找了很资料和解决方案。有的让我找他们开发过的公司让他们配合我做一个类似跳转的东西,让他们代我们授权然后回调到我的服务器上。我想想这个东西只能解一时之需,总不能每次出现个功能 我就找那些人。我不烦别人还嫌烦。于是我又找了一些资料。就看到了微信的开放平台里的第三方平台。
微信第三方平台 他的定义在我个人理解就是 我成为服务商帮我的客户服务,不需要进入客户的公号里进行设置,然后我可以代他开发,一些回调地址,授权页面域名都在我第三方平台里设置,把主要的东西掌握在自己的手上,直接脱离那个烦人的公号设置,就是上面那张图。现在世面上也有很多这些东西
类似于上面这种让公号授权给第三方一些权限,然后第三方带代为开发,当然也能正常的获取微信的各种权限(前提是对方已经授权给你了)
那就进入正题。
第一步:
首先我们当然就是先去注册一个微信开放平台的账号。
微信开放平台
注册这些东西 你就按它的提示来吧。准好300大洋。认证费~~
弄好提交了认证 一般一周内就会有认证公司给你电话的。如果你能说会道口才好的话,电话那头可能会成为你的另一半。程序员的交际圈也就这样了。
当你有一个账后 在管理中心->第三方平台->创建第三方平台进行按照他的提示就可以创建一个项目
创建完后,记得回到 管理中心->第三方平台 你创建的项目 操作详情里面进行操作
前期就大概就这一提交审核。 大概第二天就能知道是不是审核通过了 。审核不通过 会有提示为啥审核不通过,大部分原因是因为平台官方网址打不开。
第二步:
也是在项目详情里面 , 开发信息 这边是先让你选择 你需要的公众号或者小程序的的权限,点编辑按照你需要权限 初步设定一下。如果后期需要其他权限也是可以进行更改的。
step 1:
我这边就是设置了两个。
step 2:
我一个个讲吧,微信提示有会把我们弄懵
这个东西他会每隔10分钟 会发一个请求到你服务器上,所以这里填写你能接受到微信请求的地址。可以先用内网穿透测试ngrok 花生壳 这些(我是自己搭建了一个ngrok,有兴趣的可以去翻一下我的ngrok搭建的文章),填好之后微信就会发送请求过来。(在审核中它也会发的)下面是微信请求的示例图
请求过来的都是XML 加上一些参数。
appid :是你第三方的项目的appid
Enctypt 是需要ase进行解密 解密出来有个component_verify_ticket 有效期是12个小时。自己做好维护。提前半小时进行更新。
概述 | 微信开放文档 加密解密的demo 在这个链接里可以去下载看一下。 我是用php的 微信的demo里的解密是比较老的。php7以上就开始不支持了。这可以去李彦宏那边搜一下 能搜到的 。
一些公号的事件 和 ticket 差不多也需要解密。这里面可以玩出一些花样 可以自行研究一下
消息校验TOKEN 消息加解密KEY 这些自行按规则填写
授权事件接收配置 、 消息与事件接收配置、授权发起页域名 、公众号开发域名 这几项要域名一致
这着重讲一下 公众号开发域名 这个东西。完全就是坑爹。他上面写着选填,但是你不填这个地址微信狗日的到最后用户进行访问的时候 就会出现redirect_uri 错误。这里的 公众号开发域名 就跟公号里的 网页授权域名 是同一个道理 你不填就不行,连访问都不访问不了,这里给你个选填。
也可能是我粗心看见选填就不填了。回头搞半天。
参数配置方面应该就讲完了
现在讲一下各种令牌 token 预授权码的获取
第一步:
这里就是那个ticket 如果看到了这里应该这步都是完成的。就是微信会主动推送加密的ticket 到你的 授权事件接收配置 的地址上 你要去解密
第二步:
获取令牌:和上面获取ticket差不多 令牌 | 微信开放文档 这里的这个文档是没坑的。照这里做。accounToken 有效期是2个小时 ,提前半个小时进行更新,自己做好维护
第三步:
获取预授权码:和上面两步差不多 预授权码 | 微信开放文档 这里注意一下,打箭头的这里也要一起改 改成获取的令牌就好了。就是post 和get 都要放令牌。自行维护。或者不需要维护,需要的时候就去请求拿一下。。
第四步 :
生成链接 链接会自动变换成二维码,拿这个二维码 去给公号的管理员进行扫码授权
授权流程技术说明 | 微信开放文档 可以参照这个文档写。
这里注意的是 一定要在 授权发起页域名 填写的地址里进行编写代码 而且一定要在页面里
写个a标签跳转过去。不能直接生成好复制过去打开 微信是不会认这样的操作 会报错的
例子:
手动点击跳转过去 会变成一个二维码。然后让需要授权的公号管理员进行扫码授权
讲到这里 总结一下:
首先需要 接收微信推送过来的Ticket 在 授权事件接收配置 这里的填写的地址 进行解密 然后自行维护,有效期12个小时
第二 获取令牌 主动去请求获取 自行维护 有效期 2个小时
第三 获取预授权码 然后生成链接 在页面中点开。
代公号发起授权
简介 | 微信开放文档 这里就和平常的 开发公号的东西差不多了。就是有些需要按照第三方平台的规则来,大致相同。
我的业务需求权限只有一些 获取账号这些。其他权限 各位可以在仔细对照一下文档。 这个东西我也研究了1天才弄出来。我是比较笨的人。相信各位都是聪明绝顶的比我厉害。这些是我的拙见,有什么写的不好的请包涵。
微信开放平台之第三方授权开发相关推荐
- 微信开放平台之第三方平台开发,模板小程序如何提交?
大家好,我是悟空码字 12月25日,天气晴朗,阳光普照,今天是圣诞节.因为疫情影响,小羊人的增多,街上放眼望去,人烟稀少.楼下除了几个十一二岁的小男孩在玩耍,也没有像往日老人悠闲打牌.小孩嬉戏那般热闹 ...
- 微信开放平台【第三方平台】java开发总结:预授权码(pre_auth_code)(三)
微信第三方平台预授权码(pre_auth_code)开发说明(全网最详细的微信第三方平台预授权码开发说明) 预授权码 预授权码(pre_auth_code)是第三方平台方实现授权托管的必备信息,每个预 ...
- 微信开放平台【第三方平台】java开发总结:验证票据(component_verify_ticket)(-)
微信第三方平台验证票据(component_verify_ticket)开发说明(全网最详细的微信第三方平台验证票据开发说明) 概述 微信公众平台-第三方平台(简称第三方平台)开放给所有通过开发者资质 ...
- 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...
1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...
- 微信开放平台之第三方平台开发,从哪里入手?
大家好,我是悟空码字 疫情之下,最近有不少兄弟没有挺进决赛,半途成了小羊人,可谓是出师未捷身先死.话说回来,不管怎么样,尽量保护好自己,能越晚变羊越好. 开始说正事,不管是自己在创业或学习也好,还是公 ...
- 微信开放平台之第三方平台代公众号发起网页授权
正式讲解之前我想问一个问题: 微信开放平台第三方平台为什么会出现?或者说微信的开发人员为什么弄出个开放平台的第三方平台出来? 我的理解是:原本公众号开发时只能给一家公司开发,因为配置的网页授权域名只有 ...
- 微信开放平台_第三方平台授权流程_验证票据
一.验证票据 1.1 官方说明: 验证票据(component_verify_ticket):在第三方平台创建审核通过后,微信服务器会向其"授权事件接收URL" 每隔 10 分钟以 ...
- 微信开放平台 网站应用 第三方微信登录 回调地址导致的错误如何解决
微信开放平台:https://open.weixin.qq.com 使用 单独为公司注册的QQ,并使用对应的QQ邮箱注册微信开放平台,并激活. 然后 提交企业信息审核,审核通过后,就可以创建 网站应用 ...
- 微信开放平台(第三方平台)代替微信公众号发送模板消息(基于lavarel框架开发,EasyWeChat)
1.公众号必须得把模板消息授权到第三方平台. 2.我用的是 EasyWeChat 3.通过接口修改账号所属行业 (实质上就是开通模板消息) //修改账号所属行业public function set_ ...
- 微信开放平台开发(一)
2019独角兽企业重金招聘Python工程师标准>>> 使用背景 我们的客户都有一个公众号,每个公众号对应的都有用户,但我们的业务是想让这些不同公众号下相同的用户关联起来.所以就选择 ...
最新文章
- ICML2020 | PGFS:如何保证生成分子是可合成的?强化学习来帮忙
- R语言一键批量完成差异统计和可视化
- 查看linux安装redis的位置,linux查看是否安装redis
- Error:org.gradle.api.internal.changedetection.state.FileCollectionSnapshotImpl cannot be cast to org
- Struts2中的OGNL表达式
- Altera 速度等级
- 前端学习(77):css中常见margin塌陷问题之解决办法
- 漫游Kafka设计篇之Producer和Consumer(4)
- python内存注入代码_Python模板注入
- 阅读verilog程序总结
- Swift 5 闭包Closure简明教程
- 基于wke封装的duilib的webkit浏览器控件,可以c++与js互交,源码及demo下载地址
- charrnn 诗歌_代码不是诗歌,它只是代码
- 【sketchup 2021】草图大师的辅助建模工具1【量角器与文字、尺寸标注与三维字、实体工具】
- 2022年奶茶行业发展趋势
- oracle外表层,三步教会你掌握Oracle外表(externaltable)
- 分享一些实用的手机应用
- C语言图形编程--俄罗斯方块制作(二)源代码
- window系统生成多个ssh
- 历史演变有助于理解css布局的本质
热门文章
- 新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied for use的解决办法
- 基于Python的指数基金量化投资——估值数据的直接获取
- 训练集,验证集,测试集(以及为什么要使用验证集?)(Training Set, Validation Set, Test Set)
- 数据集按指定比例划分为训练集、验证集和测试集
- ubuntu11.04(unix 就可以了) 共享文件以及支持上传文件
- Algorithms, Part I by Kevin Wayne, Robert Sedgewick
- Java练习10:输入两个正整数m和n,求其最大公约数和最小公倍数
- 如何查看浏览器的DNS 缓存信息
- java 8 解析英文月份,英文星期等
- python风变编程是骗局吗-一个月在风变编程学完了Python基础语法,真香!