| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- /**
- * Created by PhpStorm.
- * User: dingran
- * Date: 2019/10/17
- * Time: 下午3:19
- */
- namespace app\common\services\api;
- class WechatApi
- {
- /**
- * 用户验证授权 api
- *
- * snsapi_userinfo
- *
- * @param $appId
- * @param $url
- * @param $state
- * @return string
- */
- public function _getAuthUrl($appId, $url, $state)
- {
- return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $appId . "&redirect_uri=" . urlencode($url) . "&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect";
- }
- /**
- *
- * 静默获取用户信息
- *
- * snsapi_base
- *
- * @param $appId
- * @param $url
- * @param $state
- * @return string
- */
- public function _getAuthBaseUrl($appId, $url, $state)
- {
- return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $appId . "&redirect_uri=" . urlencode($url) . "&response_type=code&scope=snsapi_base&state={$state}#wechat_redirect";
- }
- /**
- * 获取token api
- *
- * @param $appId
- * @param $appSecret
- * @param $code
- * @return string
- */
- public function _getTokenUrl($appId, $appSecret, $code)
- {
- return "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appId . "&secret=" . $appSecret . "&code=" . $code . "&grant_type=authorization_code";
- }
- /**
- * 获取用户信息 api
- *
- * 无需关注
- *
- * @param $accesstoken
- * @param $openid
- * @return string
- */
- public function _getUserInfoUrl($accesstoken, $openid)
- {
- return "https://api.weixin.qq.com/sns/userinfo?access_token={$accesstoken}&openid={$openid}&lang=zh_CN";
- }
- /**
- * 获取全局ACCESS TOKEN
- * @return string
- */
- public function _getAccessToken($appId, $appSecret)
- {
- return 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appId . '&secret=' . $appSecret;
- }
- /**
- * 获取用户信息
- *
- * 需要关注
- *
- * @param $accesstoken
- * @param $openid
- * @return string
- */
- public function _getInfo($accesstoken, $openid)
- {
- return 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=' . $accesstoken . '&openid=' . $openid;
- }
- /**
- * 验证account_token
- *
- * @param $accesstoken
- * @param $openid
- *
- * @return string
- */
- public function _tokenAuth($accesstoken, $openid)
- {
- return 'https://api.weixin.qq.com/sns/auth?access_token=' . $accesstoken . '&openid=' . $openid;
- }
- public function _refreshAuth($appid, $refreshtoken)
- {
- return 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=' . $appid . '&grant_type=refresh_token&refresh_token=' . $refreshtoken;
- }
- public function baseUserInfo($appId, $appSecret, $openid)
- {
- $global_access_token_url = $this->_getAccessToken($appId, $appSecret);
- $global_token = \Curl::to($global_access_token_url)
- ->asJsonResponse(true)
- ->get();
- $global_userinfo_url = $this->_getInfo($global_token['access_token'], $openid);
- $user_info = \Curl::to($global_userinfo_url)
- ->asJsonResponse(true)
- ->get();
- return $user_info;
- }
- public function authUserInfo($accessToken, $openid)
- {
- $userinfo_url = $this->_getUserInfoUrl($accessToken, $openid);
- $user_info = \Curl::to($userinfo_url)
- ->asJsonResponse(true)
- ->get();
- return $user_info;
- }
- }
|