1 class class_weixin
2 {
3 var $appid = APPID;
4 var $appsecret = APPSECRET;
5
6 //构造函数,获取Access Token
7 public function __construct($appid = NULL, $appsecret = NULL)
8 {
9 if($appid && $appsecret){
10 $this->appid = $appid;
11 $this->appsecret = $appsecret;
12 }
13 }
14
15 //生成OAuth2的URL
16 public function oauth2_authorize($redirect_url, $scope, $state = NULL)
17 {
18 $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri=".$redirect_url."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect";
19 return $url;
20 }
21
22 //生成OAuth2的Access Token
23 public function oauth2_access_token($code)
24 {
25 $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appid."&secret=".$this->appsecret."&code=".$code."&grant_type=authorization_code";
26 $res = $this->http_request($url);
27 return json_decode($res, true);
28 }
29
30 //获取用户基本信息(OAuth2 授权的 Access Token 获取 未关注用户,Access Token为临时获取)
31 public function oauth2_get_user_info($access_token, $openid)
32 {
33 $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
34 $res = $this->http_request($url);
35 return json_decode($res, true);
36 }
37
38 //获取用户基本信息
39 public function get_user_info($openid)
40 {
41 $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$this->access_token."&openid=".$openid."&lang=zh_CN";
42 $res = $this->http_request($url);
43 return json_decode($res, true);
44 }
45
46 //HTTP请求(支持HTTP/HTTPS,支持GET/POST)
47 protected function http_request($url, $data = null)
48 {
49 $curl = curl_init();
50 curl_setopt($curl, CURLOPT_URL, $url);
51 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
52 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
53 if (!empty($data)){
54 curl_setopt($curl, CURLOPT_POST, 1);
55 curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
56 }
57 curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
58 $output = curl_exec($curl);
59 curl_close($curl);
60 return $output;
61 }
62 }