PHP code example of xwzgit / open-wechat

1. Go to this page and download the library: Download xwzgit/open-wechat library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

xwzgit / open-wechat example snippets


    注:pre_auth_code 预授权码用于公众号或小程序授权时的第三方平台方安全验证。
    $response = OpenApiServer::createAuthUrl($preAuthCode)
    
    $response格式:
    [
        "errcode" => 0, //errcode 不为0的时候说明接口请求出错了,详细看errmsg
        "authUrl" => "https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=wx3c7a**&pre_auth_code=preauthcode-_WZYBLfHQZC8mrYCrhdlNSrNM_CX2BJP5F&auth_type=1&redirect_uri=%2Fopen%2Fauth%2Fredirect",
    ]
    

    //第三方平台根据授权的公众号,获取授权码(access_token),代替公众号调用接口,
    前提条件,公众号需要有接口权限,同时需要授权给第三方平台
    示例:
    
    //1,代公众号调用接口调用次数清零 API 的权限。
    $response = OpenApiServer::clearWeChatQuota($appId,$accessToken)
    $response格式:
    [
        "errcode" => 0, //errcode 不为0的时候说明接口请求出错了,详细看errmsg
        "errmsg" => "ok",
    ]
    //2,清零第三方平台接口调用次数。
    $response = OpenApiServer::clearComponentQuota($componentAccessToken);
    $response格式:
    [
        "errcode" => 0, //errcode 不为0的时候说明接口请求出错了,详细看errmsg
        "errmsg" => "ok",
    ]

    //1,获取授权地址。
    $response = OpenApiServer::getWebAuthorizeUrl($appId, $redirectUrl, $scope);
    $response格式:
    [
        "errcode" => 0, //errcode 不为0的时候说明接口请求出错了,详细看errmsg
        "authUrl" => "http://....",
    ]
    
    //2,根据授权地址回调返回的CODE,获取用户的openid和access token。
    
    $response = OpenApiServer::getWebAuthorizeUrl($appId,$code,$componentAccessToken);
    $response :
    {
        "errcode" => 0,
        "access_token"=>  "ACCESS_TOKEN",
        "expires_in"=>  7200,
        "refresh_token"=>  "REFRESH_TOKEN",
        "openid"=>  "OPENID",
        "scope"=>  "SCOPE"
    }
    
    //3,刷新用户信息获取的access_token
    $response = OpenApiServer::getWebAccessTokenRefresh($appId,$code,$componentAccessToken);
    $response :
    {
        "errcode" => 0,
        "access_token"=>  "ACCESS_TOKEN",
        "expires_in"=>  7200,
        "refresh_token"=>  "REFRESH_TOKEN",
        "openid"=>  "OPENID",
        "scope"=>  "SCOPE"
    }

    //1,获取授权地址,跳转活动code
    $response = WeChatApiServer::getAuthCodeUrl();
    $response :
    [
        "errcode" => 0,
        "authUrl" => "http://....."
    ]
    
    //2,根据code获取access Token 和 用户openId
    $response = WeChatApiServer::getOpenIdAccessToken($code);
    $response :
        [
            "errcode" => 0
            "access_token" =>"ACCESS_TOKEN",
            "expires_in" =>7200,
            "refresh_token" =>"REFRESH_TOKEN",
            "openid" =>"OPENID",
            "scope" =>"SCOPE"
        ]
        
    //3,刷新AccessToken
    $response = WeChatApiServer::refreshAccessToken($refresToken);
    $response :
    [
        "errcode" => 0
        "access_token" =>"ACCESS_TOKEN",
        "expires_in" =>7200,
        "refresh_token" =>"REFRESH_TOKEN",
        "openid" =>"OPENID",
        "scope" =>"SCOPE"
    ]
    
    //4,根据Access Token 和OpenId 获取用户信息
    $response = WeChatApiServer::getUserInfo($openId,$accessToken)
    $response :
    [
        "errcode" => 0
        "openid" => " OPENID",
        " nickname" => NICKNAME,
        "sex" => "1",
        "province" => "PROVINCE"
        "city" => "CITY",
        "country" => "COUNTRY",
        "headimgurl" => "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
        "privilege" => [ "PRIVILEGE1" "PRIVILEGE2"     ],
        "unionid" => "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    ]

    //1,获取基础Access Token(全局保存,2小时有效期,提前刷新)
    $response = WeChatApiServer::getBasicAccessToken()
    $response :
    [
        "errcode" => 0
        "access_token" => "ACCESS_TOKEN",
        "expires_in" => 7200
    ]
    
    //2,获取jsApiTicket(全局保存,2小时有效期,提前刷新)
    $response = WeChatApiServer::getJsApiTicket($accessToken)
    $response :
    [
        "errcode" => 0,
        "errmsg" => "ok",
        "ticket" => "bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
        "expires_in" => 7200
    ]
    
    //3,根据jsApiTicket获取分享配置
    $response = WeChatApiServer::getShareSetting($jsApiTicket,$shareUrl)
    $response :
    [
        "errcode" => 0,
        'timeStamp' => time(),
        'nonceStr' => 'ddddd',
        'signUrl' => $shareUrl,
        'signature' => $signature,
    ]