三方平台管理公众号----公众号授权

三方平台创建成功,并且解密获取到验证票据(component_verify_ticket)即可开始公众号/小程序授权流程
一、授权预注册页获取预授权码(pre_auth_code)

二、授权预注册页引导管理员进入授权页授权
三、授权页授权成功进入授权回调页获取授权公众号/小程序信息

授权预注册页:为授权起始页,从此页开始引导用户进入授权流程,授权预注册页必须在三方平台配置的授权发起页域名下
在这里插入图片描述

<?php
/**
 * https://zxbeta.zhixuerj.com/OpenPlatform/OpenPlatformAuthRequest.php?SaaSClientKey=12345
 * 客户授权引入页:访问此页面,提示用户是否同意授权三方平台,同意点击"btn", 跳转componentloginpage
 */
//1.0 获取授权门店
$SaaSClientKey = $_GET['SaaSClientKey'];
if(empty($SaaSClientKey)){
    require_once(dirname(__FILE__).'/error_md.html');exit;
}

//2.0 获取三方平台预授权码(pre_auth_code)
$ServerReq = new ServerReq();
$result = $ServerReq->GetApiCreatePreauthCode();
if(!!$result['code']){
    require_once(dirname(__FILE__).'/error_auth.html');exit;
}
$pre_auth_code   = $result['data']['pre_auth_code'];
$component_appid = $result['data']['component_appid'];
//授权成功后回调地址
$redirect_uri    = urlencode($config['URL_ZHIXUE']."/OpenPlatform/OpenPlatformAuthCallback.php?SaaSClientKey=$SaaSClientKey)";

//3.0 授权页地址生成
$componentloginpage = "https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=$component_appid&pre_auth_code=$pre_auth_code&redirect_uri=$redirect_uri&auth_type=3";
//header("Location: $componentloginpage");此处不可直接跳转,必须由用户在html选择手动点击跳转
require_once(dirname(__FILE__) . '/OpenPlatformAuthRequest.html');

注:redirect_uri必须urlencode,在实际测试中发现,如果redirect_uri没有参数或只有一个参数时,一切正常,如果有多个参数,除了第一个参数外其他参数会丢失。经调试发现,redirect_uri编码后则正常

授权页(componentloginpage):授权注册页用户手动点击url,跳转至该页面,效果如下图
在这里插入图片描述
授权回调页:用户扫描授权页二维码后,选择要授权的公众号或小程序,点击“授权”,完成授权流程。授权流程完成后,授权页会自动跳转进入回调 URI,并在 URL 参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600),授权回调页必须在三方平台配置的授权发起页域名下
在这里插入图片描述
授权回调页: auth_code+component_access_token,获取授权信息,返回结果如下,服务端需要将授权公众号/小程序的authorizer_appid & authorizer_refresh_token 保存起来,三方平台根据authorizer_appid & authorizer_refresh_token即可调用微信相关公众号/小程序接口。
在这里插入图片描述

<?php
/**
 * https://zxbeta.zhixuerj.com/OpenPlatform/OpenPlatformAuthCallback.php
 * 客户授权成功回调页面
 */
require_once(dirname(__FILE__) . '/../util/ServerReq.php');

//1.0 获取指定门店授权码 有效期:1h
$SaaSClientKey = $_GET['SaaSClientKey'];
$auth_code     = $_GET['auth_code'];

//2.0 缓存该授权码小程序/公众号 authorizer_appid & authorizer_refresh_token
$ServerReq = new ServerReq();
$ServerReq->CacheAuthorizeRefreshToken($SaaSClientKey, $auth_code);

参考资料:授权流程技术说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值