微信第三方平台的授权过程整理

最近碰到微信第三方平台这个东西,就研究了下。由于微信官方文档顺序不是很明确,我特别也整理了一下。
官方的概述是
公众平台第三方平台是为了让公众号或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,开放给所有通过开发者资质认证后的开发者使用。
就是说第三方平台相当与一个中介来管理那些授权的公众号和小程序。

申请的流程可以去微信第三方平台的官方平台
https://open.weixin.qq.com/cgi-bin/frame?t=home/wx_plugin_tmpl&lang=zh_CN

以公众号为例子,公众号授权第三方平台流程是这样子的:
在这里插入图片描述
首先名词梳理下:
component_appid:第三方平台 ID,在申请通过之后可以查看。
component_appsecret:第三方平台密钥,申请之后可以查看,需要自己妥善保存,否则丢失或者忘记之后只能重置获取。
component_verify_ticket:微信后台每10分钟推送到第三方平台的授权接收 URL的 Ticket。
component_access_token:第三放平台的 Token,有效期2小时,需要根据 component_verify_ticket 获取。
pre_auth_code:从名称可以看出是预授权码,由 component_access_token 结合 component_appid 获取,其中用户授权给第三方平台需要通过预授权码才能完成整个授权。
authorization_code:用户授权时微信通过地址栏参数的方式传输给第三方平台,平台需要根据该 code 结合 component_access_token 以及 component_appid 获取授权公众号的信息。
authorizer_appid:授权方 AppID 其实就是公众号的 AppId(也就是下文中消息与事件接收 URL 中的 A)。
authorizer_access_token:公众号的 Access Token。
authorizer_refresh_token:主要用于第三方平台获取和刷新已授权用户的 access_token,只会在授权的时候提供,公众号 Access Token 也是2小时失效,所以需要根据 authorizer_refresh_token 进行刷新。

授权流程(以下所需的参数可参考上面的名词)
1.接收 component_verify_ticket。
该 Ticket 将会以 POST 的方式发送到(授权接收 URL,这是微信第三方平台注册时配置的参数),对消息进行解密,获取 Ticket。
微信的加密解密详见:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318479&lang=zh_CN

返回结果示例

<xml>
<AppId> </AppId>
<CreateTime>1413192605 </CreateTime>
<InfoType> </InfoType>
<ComponentVerifyTicket> </ComponentVerifyTicket>
</xml>

由于微信数据以 XML 方式进行推送,我们可以将xml转换为json;

2.利用 comp

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用PHP完成微信第三方平台授权,你可以按照以下步骤进行操作: 1. 首先,你需要注册成为微信开放平台的开发者,并创建一个第三方平台应用。 2. 在创建应用后,你会得到一个AppIDAppSecret,这些是与微信平台进行通信的凭证。 3. 在你的PHP项目中,你需要使用curl库或其他HTTP请求库来发送HTTP请求到微信开放平台的API接口。 4. 首先,你需要获取预授权码(pre_auth_code)。发送GET请求到以下接口: ``` https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx ``` 其中,component_access_token是通过调用获取第三方平台component_access_token接口获取的。 5. 获取到预授权码后,你可以使用预授权码和你的AppID生成授权链接,引导用户进入授权页面: ``` https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxx&pre_auth_code=xxx&redirect_uri=xxx ``` 其中,component_appid是你的AppID,pre_auth_code是上一步获取的预授权码,redirect_uri是用户授权后的回调URL。 6. 用户在授权页面确认授权后,会跳转到你指定的回调URL,并携带授权码(authorization_code)参数。 7. 在回调URL对应的PHP页面中,你需要解析URL中的授权码参数,并使用授权码发送POST请求到以下接口,获取授权令牌(authorizer_access_token)和刷新令牌(authorizer_refresh_token): ``` https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxx ``` 其中,component_access_token是通过调用获取第三方平台component_access_token接口获取的。 8. 获取到授权令牌和刷新令牌后,你可以使用它们来调用微信开放平台的其他API接口,完成后续的操作。 以上是使用PHP完成微信第三方平台授权的基本流程,具体的实现细节可能会因具体需求而有所不同。在实际开发中,你还需要处理授权过期、刷新令牌等情况,以保证授权的有效性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值