由于最近业务需求客户让我们帮忙开发微信公号。于是登录了客户的公号 发现在他的公号设置里面已经写满了页面授权这些东西,因为这个公号的听说是找了很多开发公司帮他们开发,反正就是东一个西一个而且哪个都不能删。开发过的都知道页面授权域名这个东西最多只能填写两个(老版本的时候只能写一个。老马的手下已经大发慈悲的升级了一下能写两个了)但这个东西非常重要,多的也不解释了。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天才弄出来。我是比较笨的人。相信各位都是聪明绝顶的比我厉害。这些是我的拙见,有什么写的不好的请包涵。

微信开放平台之第三方授权开发相关推荐

  1. 微信开放平台之第三方平台开发,模板小程序如何提交?

    大家好,我是悟空码字 12月25日,天气晴朗,阳光普照,今天是圣诞节.因为疫情影响,小羊人的增多,街上放眼望去,人烟稀少.楼下除了几个十一二岁的小男孩在玩耍,也没有像往日老人悠闲打牌.小孩嬉戏那般热闹 ...

  2. 微信开放平台【第三方平台】java开发总结:预授权码(pre_auth_code)(三)

    微信第三方平台预授权码(pre_auth_code)开发说明(全网最详细的微信第三方平台预授权码开发说明) 预授权码 预授权码(pre_auth_code)是第三方平台方实现授权托管的必备信息,每个预 ...

  3. 微信开放平台【第三方平台】java开发总结:验证票据(component_verify_ticket)(-)

    微信第三方平台验证票据(component_verify_ticket)开发说明(全网最详细的微信第三方平台验证票据开发说明) 概述 微信公众平台-第三方平台(简称第三方平台)开放给所有通过开发者资质 ...

  4. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...

  5. 微信开放平台之第三方平台开发,从哪里入手?

    大家好,我是悟空码字 疫情之下,最近有不少兄弟没有挺进决赛,半途成了小羊人,可谓是出师未捷身先死.话说回来,不管怎么样,尽量保护好自己,能越晚变羊越好. 开始说正事,不管是自己在创业或学习也好,还是公 ...

  6. 微信开放平台之第三方平台代公众号发起网页授权

    正式讲解之前我想问一个问题: 微信开放平台第三方平台为什么会出现?或者说微信的开发人员为什么弄出个开放平台的第三方平台出来? 我的理解是:原本公众号开发时只能给一家公司开发,因为配置的网页授权域名只有 ...

  7. 微信开放平台_第三方平台授权流程_验证票据

    一.验证票据 1.1 官方说明: 验证票据(component_verify_ticket):在第三方平台创建审核通过后,微信服务器会向其"授权事件接收URL" 每隔 10 分钟以 ...

  8. 微信开放平台 网站应用 第三方微信登录 回调地址导致的错误如何解决

    微信开放平台:https://open.weixin.qq.com 使用 单独为公司注册的QQ,并使用对应的QQ邮箱注册微信开放平台,并激活. 然后 提交企业信息审核,审核通过后,就可以创建 网站应用 ...

  9. 微信开放平台(第三方平台)代替微信公众号发送模板消息(基于lavarel框架开发,EasyWeChat)

    1.公众号必须得把模板消息授权到第三方平台. 2.我用的是 EasyWeChat 3.通过接口修改账号所属行业 (实质上就是开通模板消息) //修改账号所属行业public function set_ ...

  10. 微信开放平台开发(一)

    2019独角兽企业重金招聘Python工程师标准>>> 使用背景 我们的客户都有一个公众号,每个公众号对应的都有用户,但我们的业务是想让这些不同公众号下相同的用户关联起来.所以就选择 ...

最新文章

  1. ICML2020 | PGFS:如何保证生成分子是可合成的?强化学习来帮忙
  2. R语言一键批量完成差异统计和可视化
  3. 查看linux安装redis的位置,linux查看是否安装redis
  4. Error:org.gradle.api.internal.changedetection.state.FileCollectionSnapshotImpl cannot be cast to org
  5. Struts2中的OGNL表达式
  6. Altera 速度等级
  7. 前端学习(77):css中常见margin塌陷问题之解决办法
  8. 漫游Kafka设计篇之Producer和Consumer(4)
  9. python内存注入代码_Python模板注入
  10. 阅读verilog程序总结
  11. Swift 5 闭包Closure简明教程
  12. 基于wke封装的duilib的webkit浏览器控件,可以c++与js互交,源码及demo下载地址
  13. charrnn 诗歌_代码不是诗歌,它只是代码
  14. 【sketchup 2021】草图大师的辅助建模工具1【量角器与文字、尺寸标注与三维字、实体工具】
  15. 2022年奶茶行业发展趋势
  16. oracle外表层,三步教会你掌握Oracle外表(externaltable)
  17. 分享一些实用的手机应用
  18. C语言图形编程--俄罗斯方块制作(二)源代码
  19. window系统生成多个ssh
  20. 历史演变有助于理解css布局的本质

热门文章

  1. 新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied for use的解决办法
  2. 基于Python的指数基金量化投资——估值数据的直接获取
  3. 训练集,验证集,测试集(以及为什么要使用验证集?)(Training Set, Validation Set, Test Set)
  4. 数据集按指定比例划分为训练集、验证集和测试集
  5. ubuntu11.04(unix 就可以了) 共享文件以及支持上传文件
  6. Algorithms, Part I by Kevin Wayne, Robert Sedgewick
  7. Java练习10:输入两个正整数m和n,求其最大公约数和最小公倍数
  8. 如何查看浏览器的DNS 缓存信息
  9. java 8 解析英文月份,英文星期等
  10. python风变编程是骗局吗-一个月在风变编程学完了Python基础语法,真香!