image.png整体流程技术实现平台方获取预授权码
优采云 发布时间: 2021-08-03 20:02
image.png整体流程技术实现平台方获取预授权码
图像.png
整体流程技术使第三方平台能够获取预授权码(pre_auth_code)
在第三方平台应用上点击授权,会得到授权预授权码(pre_auth_code),有效期为10分钟。
发布
调用该接口前,需要获取第三方平台的token(也称为调用证书component_access_token的接口)。
{
"component_appid": "appid_value"
}
后端返回参数,前端组装请求微信url
加入授权页面时,前端对后端返回的数据进行整理。组装完成后点击url调整按钮,弹出授权窗口。 (微信做了限制,只能在第三方平台设置的回调url地址访问,其他本地地址无效)
图像.png
'component_appid' => 'XXX', //第三方平台app_id
'pre_auth_code' => 'pre_auth_code' // 预授权码
'redirect_uri' => 'https://mp.weixin.qq.com/cgi-bin/componentloginpage', //拼装的URL地址
'auth_type' => 1, //1 2 3 要授权的帐号类型
'biz_appid' => 'xxx' //指定授权唯一的小程序或公众号
用户授权,同意授权
进入第三方平台授权页面后,用户需要确认并同意将自己的公众号或小程序授权给第三方平台方完成授权流程。此时,在微信上,公众号已经授权给第三方平台,在公众号平台上可以看到授权平台。然后第三方平台需要获取公众号的基本信息、授权信息、执行权限,并需要回调地址进行处理并保存授权信息(access_token和refresh_token)。
回调地址处理授权信息
这个回调地址是在第三方平台设置的。获得授权码(auth_code)后,使用授权码换取公众号或小程序接口调用凭证和授权信息。
发布
{
"component_appid":"appid_value" , //第三方平台 appid
"authorization_code": "auth_code_value" //授权码
}
返回的只是授权信息(authorization_info)。 Authorizer_appid、authorizer_access_token、expires_in、authorizer_refresh_token和permission id设置这些数据。公众号的部分基本信息(公众号、头像等)尚未获取。此时需要获取被授权方的基本账户信息。
发布
{
"component_appid":"appid_value" , //第三方平台 appid
"authorizer_appid": "auth_code_value" //授权方 appid
}
获取到信息后,可以将其保存到数据库中,整个微信公众号授权流程就结束了。可以根据各自的业务对授权信息和账户信息进行其他业务处理。
代码示例
$this->request()->getParams() 是封装的获取参数的方法,可以自行替换
getComAccessToken()是获取第三方接口调用凭证的封装方法,可自行替换