TA的每日心情 | 奋斗 2019-3-14 22:24 |
---|
签到天数: 160 天 [LV.7]常住居民III
管理员
  
- 积分
- 18046
|
扫码事件推送主要包括以下两种:
scancode_push:用户完成扫描后,系统会自动跳转访问二维码保存的地址信息。同时服务器会向第三方发送事件消息推送。
scancode_waitmsg:用户扫描完成后,系统会弹出“消息接收中”提示框。同时服务器会向第三方发送事件消息推送。
以scancode_waitmsg事件推送为例,实现当用户完成扫码后主动提示用户“扫码成功”消息,如图所示
找到IndexController.class.php控制器文件,修改configToken()方法,新增以下代码:
- // 配置服务器Token,微信请求数据入口
- public function configToken()
- {
- // 服务器签名验证
- if(!$this->token_auth($this->token))
- {
- exit('error');
- }
- // 判断是的Token验证还是用户消息转发
- if($_GET['echostr']){
- exit($_GET['echostr']);
- }
- else
- {
- // 数据包接收
- $xml = file_get_contents("php://input");
- // 引入PHP消息处理类库并实例化
- import("@.Lib.Wx.WxBase");
- $wx = new \WxBase();
- // 转换XML格式为数组格式
- $data = $wx::xml2data($xml);
- $wx->setData($data);
- // 保存数据到data属性
- $this->data = $data;
- // 把接收到的数据写入本地文件
- file_put_contents('./wechat_data.json', json_encode($data));
- // 扫码事件处理
- if($this->data['MsgType'] == 'event' && $this->data['Event'] == 'scancode_waitmsg')
- {
- if($this->data['EventKey'] == 'show_success' )
- {
- $wx->replyText('扫码成功!');
- }
- }
- exit('success');
- }
- }
复制代码创建两种推送的菜单JSON的菜单JSON格式如下:
- public function myMenu()
- {
- $data = '{
- "button":[
- {
- "name":"扫码",
- "sub_button":[
- {
- "type":"scancode_waitmsg",
- "name":"扫码带提示",
- "key" :"show_success",
- "sub_button":[]
- },
- {
- "type":"scancode_push",
- "name":"扫码推事件",
- "key" :"rselfmenu_0_1",
- "sub_button":[]
- }
- }]
- ]}';
- import('@.Lib.Wx.WxMenu');
- $wx = new \WxMenu(APP_ID , APP_SECRET);
- dump($wx->createMenu($data));
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|