微信第三方平台-授权码获取、授权链接生成、令牌获取

分类: 28365365tw总部 时间: 2025-12-22 03:53:15 作者: admin 阅读: 7031

本文主要整合微信文档各接口,最终得到可以使用的授权公众号令牌方法

1、在获得微信推送的ticket后,我们可以通过Ticket拿到自己的令牌(component_access_token):

POST https://api.weixin.qq.com/cgi-bin/component/api_component_token

{

“component_appid”: “appid_value” ,//第三方平台 appid

“component_appsecret”: “appsecret_value”,//第三方平台 appsecret

“component_verify_ticket”: “ticket_value”}//微信后台推送的 ticket

appid和appsecret可在开放平台详情中获取,appsecret需要管理员扫码后生成,生成后保存起来,无法再次查看。ticket则由授权事件接收配置接口提供。

返回结果示例:

{

“component_access_token”: “83_2TWHaWs10Dr_YHpvkBrasdadsdasdasMUfunPv8LWe-DeTZcKyJcptLhSzD8r7oTAGnRp6nZMRAhwkXUyrrFgDqn3CbH_nPnK34fk75AZOWdX4IV6fkTphXlDf_8TKTbADALCL”,

“expires_in”: 7200 }

拿到其中的component_access_token,该令牌一般用于url请求路径上,有效期为12小时,根据微信文档可以在11小时50分重新获取存储。

2、拿到我们的令牌后,就可以调用其他的微信API了,下一步则是生成让对方授权给我们的二维码或链接中的参数pre_auth_code(预授权码):

POST

https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=COMPONENT_ACCESS_TOKEN

{

“component_appid”: “appid_value” //第三方平台 appid

}

返回结果示例:

{

“pre_auth_code”:

“Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw”,

“expires_in”: 600

}

pre_auth_code有效期根据文档描述为30分钟,且不能共用,即每个授权二维码或链接单独一个预授权码。

官方描述:

参数必填说明component_appid是第三方平台方 appidpre_auth_code是预授权码redirect_uri是授权回调 URI(填写格式为https://xxx)。(插件版无该参数) 管理员授权确认之后会自动跳转进入回调 URI,并在 URL 参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)auth_type是要授权的账号类型,即商家点击授权链接或者扫了授权码之后,展示在用户手机端的授权账号类型。 1 表示手机端仅展示公众号;2 表示仅展示小程序,3 表示公众号和小程序都展示。 4表示小程序推客账号; 5表示视频号账号; 6表示全部,即公众号、小程序、视频号都展示 第三方平台开发者可以使用本字段来控制授权的账号类型。 对于已经注销、冻结、封禁、以及未完成注册的账号不再出现于授权账号列表。biz_appid否指定授权唯一的小程序或公众号 。如果指定了appid,则只能是该appid的管理员进行授权,其他用户扫码会出现报错。auth_type、biz_appid 两个字段如果设置的信息冲突,则biz_appid生效的优先级更高。例如,auth_type=1,但是biz_appid是小程序的appid,则会按照auth_type=2来处理,即以biz_appid的类型为准去拉出来对应的权限集列表.category_id_list否指定的权限集id列表,如果不指定,则默认拉取当前第三方账号已经全网发布的权限集列表。 如需要指定单个权限集ID,写法为“category_id_list=99” ,如果有多个权限集,则权限集id与id之间用中竖线隔开。

最终H5授权链接示例:https://open.weixin.qq.com/wxaopen/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=APPID&pre_auth_code=预授权码&redirect_uri=接口地址&auth_type=6

(这里使用H5链接没用二维码, 是因为二维码生成莫名其妙挂了,返回preauthcode无效,但H5又行。。。)

3、授权成功后,微信会回调redirect_url的地址,在该回调中会返回auth_code授权码,在该步骤需在接口上处理接收该值后,再用该code码获取authorizer_access_token令牌和authorizer_refresh_token刷新令牌

1.使用授权码获取授权信息

当用户在第三方平台授权页中完成授权流程后,第三方平台开发者可以在回调 URI 中通过 URL 参数获取授权码。使用以下接口可以换取公众号/小程序的授权信息。建议保存授权信息中的刷新令牌(authorizer_refresh_token)。使用过程中如遇到问题,可在开放平台服务商专区发帖交流。

注意: 公众号/小程序可以自定义选择部分权限授权给第三方平台,因此第三方平台开发者需要通过该接口来获取公众号/小程序具体授权了哪些权限,而不是简单地认为自己声明的权限就是公众号/小程序授权的权限。

POST 数据示例:

官方文档:https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/ticket-token/getAuthorizerAccessToken.html

POST https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=COMPONENT_ACCESS_TOKEN

{ “component_appid”:“appid_value” , // 第三方平台 appid

“authorization_code”: “auth_code_value” // auth_code }

2.获取授权账号调用令牌

接口说明

该接口用于获取授权账号的authorizer_access_token。authorizer_access_token 有效期为 2 小时,authorizer_access_token 失效时,可以使用 authorizer_refresh_token 获取新的 authorizer_access_token。使用过程中如遇到问题,可在开放平台服务商专区发帖交流。

authorizer_access_token 有效期为 2 小时,开发者需要缓存 authorizer_access_token,避免 API 调用触发每日限额。

缓存方法可以参考:

返回:

官方文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

POST

https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=ACCESS_TOKEN

{

“component_appid”: “appid_value” , //第三方平台 appid

“authorizer_appid”: “auth_appid_value”, //授权方 appid

“authorizer_refresh_token”: “refresh_token_value” //刷新令牌

}

刷新令牌,获取授权信息时得到,用于更新令牌有效期,最后也是返回”success”给微信即可。

获取到令牌后即可代公众号调用微信API进行开发,即可获取到当前第三方平台数据或已授权公众号的令牌信息(30天失效,需重新生成授权链接)

相关文章

《静女》译文及注释

365体育娱乐手机平台 · 08-05 阅读 7733

哥伦比亚世界杯23人名单出炉:新老结合阵容冲击淘汰赛关键战

28365365tw总部 · 07-15 阅读 6209

怎么彻底的删除微信聊天记录(怎么彻底删除微信好友)

365体育娱乐手机平台 · 08-11 阅读 4873