设为首页 收藏本站
查看: 1665|回复: 0

[经验分享] 微信公众平台自定义菜单及高级接口PHP SDK

[复制链接]

尚未签到

发表于 2015-8-22 18:03:05 | 显示全部楼层 |阅读模式
  本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法。
  

作者
  方倍工作室

修正记录:
  2014.05.03 v1.0
  
  方倍工作室 http://www.iyunv.com/txw1958/

SDK 源码:



  1 /*
  2     方倍工作室 http://www.iyunv.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.iyunv.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.iyunv.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"));
  
DSC0000.jpg
  =========================================================
  方倍工作室微信公众平台账号关注方法:
1. 微信通讯录-添加朋友-查找公众号-搜索“方倍工作室”
2. 微信通讯录-添加朋友-搜号码-输入“pondbaystudio”
3. 使用微信扫描下面的二维码
DSC0001.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102742-1-1.html 上篇帖子: PHP爬虫技术(一) 下篇帖子: PHP生成word的三种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表