• 代授权方实现业务
    • 实例化
      • 获取授权方实例
      • 帮助授权方管理开放平台账号
      • 代码示例

    代授权方实现业务

    授权方已经把公众号、小程序授权给你的开放平台第三方平台了,接下来的代授权方实现业务只需一行代码即可获得授权方实例。

    实例化

    1. use EasyWeChat\Factory;
    2. $config = [
    3. // ...
    4. ];
    5. $openPlatform = Factory::openPlatform($config);

    获取授权方实例

    1. // 代公众号实现业务
    2. $officialAccount = $openPlatform->officialAccount(string $appId, string $refreshToken);
    3. // 代小程序实现业务
    4. $miniProgram = $openPlatform->miniProgram(string $appId, string $refreshToken);

    $appId 为授权方公众号 APPID,非开放平台第三方平台 APPID

    $refreshToken 为授权方的 refresh_token,可通过 获取授权方授权信息 接口获得。

    帮助授权方管理开放平台账号

    1. // 代公众号实现业务
    2. $account = $officialAccount->account;
    3. // 代小程序实现业务
    4. $account = $miniProgram->account;
    5. // 创建开放平台账号
    6. // 并绑定公众号或小程序
    7. $result = $account->create();
    8. // 将公众号或小程序绑定到指定开放平台帐号下
    9. $result = $account->bindTo($openAppId);
    10. // 将公众号/小程序从开放平台帐号下解绑
    11. $result = $account->unbindFrom($openAppid);
    12. // 获取公众号/小程序所绑定的开放平台帐号
    13. $result = $account->getBinding();

    授权第三方平台注册的开放平台帐号只可用于获取用户 unionid 实现用户身份打通。

    第三方平台不可操作(包括绑定/解绑)通过 open.weixin.qq.com 线上流程注册的开放平台帐号。

    公众号只可将此权限集授权给一个第三方平台,授权互斥。

    接下来的 API 调用等操作和公众号、小程序的开发一致,请移步到公众号或小程序开发章节继续进行开发吧。

    代码示例

    1. // 假设你的公众号消息与事件接收 URL 为:https://easywechat.com/$APPID$/callback ...
    2. Route::post('{appId}/callback', function ($appId) {
    3. // ...
    4. $officialAccount = $openPlatform->officialAccount($appId);
    5. $server = $officialAccount->server; // ❗️❗️ 这里的 server 为授权方的 server,而不是开放平台的 server,请注意!!!
    6. $server->push(function () {
    7. return 'Welcome!';
    8. });
    9. return $server->serve();
    10. });
    11. // 调用授权方业务例子
    12. Route::get('how-to-use', function () {
    13. $officialAccount = $openPlatform->officialAccount('已授权的公众号 APPID', 'Refresh-token');
    14. // 获取用户列表:
    15. $officialAccount->user->list();
    16. $miniProgram = $openPlatform->miniProgram('已授权的小程序 APPID', 'Refresh-token');
    17. // 根据 code 获取 session
    18. $miniProgram->auth->session('js-code');
    19. // 其他同理
    20. });