微信公众平台自定义菜单及高级接口PHP SDK

SDK 源码:

复制代码
  1 /*

  2     方倍工作室 http://www.cnblogs.com/txw1958/

  3     CopyRight 2014 www.doucube.com All Rights Reserved

  4 */

  5 

  6 class class_weixin_adv

  7 {

  8     var $appid = "";

  9     var $appsecret = "";

 10 

 11     //构造函数,获取Access Token

 12     public function __construct($appid = NULL, $appsecret = NULL)

 13     {

 14         if($appid){

 15             $this->appid = $appid;

 16         }

 17         if($appsecret){

 18             $this->appsecret = $appsecret;

 19         }

 20 

 21         //hardcode

 22         $this->lasttime = 1395049256;

 23         $this->access_token = "nRZvVpDU7LxcSi7GnG2LrUcmKbAECzRf0NyDBwKlng4nMPf88d34pkzdNcvhqm4clidLGAS18cN1RTSK60p49zIZY4aO13sF-eqsCs0xjlbad-lKVskk8T7gALQ5dIrgXbQQ_TAesSasjJ210vIqTQ";

 24 

 25         if (time() > ($this->lasttime + 7200)){

 26             $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret;

 27             $res = $this->https_request($url);

 28             $result = json_decode($res, true);

 29             //save to Database or Memcache

 30             $this->access_token = $result["access_token"];

 31             $this->lasttime = time();

 32         }

 33     }

 34 

 35     //获取关注者列表

 36     public function get_user_list($next_openid = NULL)

 37     {

 38         $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token."&next_openid=".$next_openid;

 39         $res = $this->https_request($url);

 40         return json_decode($res, true);

 41     }

 42 

 43     //获取用户基本信息

 44     public function get_user_info($openid)

 45     {

 46         $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$this->access_token."&openid=".$openid."&lang=zh_CN";

 47         $res = $this->https_request($url);

 48         return json_decode($res, true);

 49     }

 50 

 51     //创建菜单

 52     public function create_menu($data)

 53     {

 54         $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$this->access_token;

 55         $res = $this->https_request($url, $data);

 56         return json_decode($res, true);

 57     }

 58 

 59     //发送客服消息,已实现发送文本,其他类型可扩展

 60     public function send_custom_message($touser, $type, $data)

 61     {

 62         $msg = array('touser' =>$touser);

 63         switch($type)

 64         {

 65             case 'text':

 66                 $msg['msgtype'] = 'text';

 67                 $msg['text']    = array('content'=> urlencode($data));

 68                 break;

 69         }

 70         $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$this->access_token;

 71         return $this->https_request($url, urldecode(json_encode($msg)));

 72     }

 73 

 74     //生成参数二维码

 75     public function create_qrcode($scene_type, $scene_id)

 76     {

 77         switch($scene_type)

 78         {

 79             case 'QR_LIMIT_SCENE': //永久

 80                 $data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.$scene_id.'}}}';

 81                 break;

 82             case 'QR_SCENE':       //临时

 83                 $data = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": '.$scene_id.'}}}';

 84                 break;

 85         }

 86         $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$this->access_token;

 87         $res = $this->https_request($url, $data);

 88         $result = json_decode($res, true);

 89         return "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($result["ticket"]);

 90     }

 91     

 92     //创建分组

 93     public function create_group($name)

 94     {

 95         $data = '{"group": {"name": "'.$name.'"}}';

 96         $url = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token=".$this->access_token;

 97         $res = $this->https_request($url, $data);

 98         return json_decode($res, true);

 99     }

100     

101     //移动用户分组

102     public function update_group($openid, $to_groupid)

103     {

104         $data = '{"openid":"'.$openid.'","to_groupid":'.$to_groupid.'}';

105         $url = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=".$this->access_token;

106         $res = $this->https_request($url, $data);

107         return json_decode($res, true);

108     }

109     

110     //上传多媒体文件

111     public function upload_media($type, $file)

112     {

113         $data = array("media"  => "@".dirname(__FILE__).'\\'.$file);

114         $url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=".$this->access_token."&type=".$type;

115         $res = $this->https_request($url, $data);

116         return json_decode($res, true);

117     }

118 

119     //https请求(支持GET和POST)

120     protected function https_request($url, $data = null)

121     {

122         $curl = curl_init();

123         curl_setopt($curl, CURLOPT_URL, $url);

124         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

125         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

126         if (!empty($data)){

127             curl_setopt($curl, CURLOPT_POST, 1);

128             curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

129         }

130         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

131         $output = curl_exec($curl);

132         curl_close($curl);

133         return $output;

134     }

135 }
复制代码

方倍工作室 http://www.cnblogs.com/txw1958/

调用方法:

初始化对象

$weixin = new class_weixin_adv("wx6222221b11111111", "3079cb22ad383ae7371d12aed1b2d0cc");

查看Access Token

var_dump($weixin->access_token);

创建二维码

var_dump($weixin->create_qrcode("QR_SCENE", "134324234"));

获取关注者列表

var_dump($weixin->get_user_list());

获取用户信息

$openid = "oLVPpjkttuZTbwDwN7vjHNlqsmPs";

var_dump($weixin->get_user_info($openid));

创建菜单

复制代码
$data ='{"button":[{"name":"方倍工作室","sub_button":[{"type":"click","name":"公司简介","key":"公司简介"},{"type":"click","name":"社会责任","key":"社会责任"},{"type":"click","name":"联系我们","key":"联系我们"}]},{"name":"产品服务","sub_button":[{"type":"click","name":"微信平台","key":"微信平台"},{"type":"click","name":"微博应用","key":"微博应用"},{"type":"click","name":"手机网站","key":"手机网站"}]},{"name":"技术支持","sub_button":[{"type":"click","name":"文档下载","key":"文档下载"},{"type":"click","name":"技术社区","key":"技术社区"},{"type":"click","name":"服务热线","key":"服务热线"}]}]}';

var_dump($weixin->create_menu($data));
复制代码

用户分组 方倍工作室 http://www.cnblogs.com/txw1958/

var_dump($weixin->create_group("老师"));

var_dump($weixin->update_group($openid, "100"));

上传下载多媒体

var_dump($weixin->upload_media("image","pondbay.jpg"));

发送客服消息

var_dump($weixin->send_custom_message($openid, "text", "asdf"));

 

 

你可能感兴趣的:(微信公众平台)