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,
]