请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

亿仁网

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 373|回复: 1

微信公众平台开发实践扫码事件消息推送

[复制链接]
  • TA的每日心情
    奋斗
    2019-3-14 22:24
  • 签到天数: 160 天

    [LV.7]常住居民III

    1074

    主题

    1139

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    18046
    发表于 2017-5-20 17:10:55 | 显示全部楼层 |阅读模式
    扫码事件推送主要包括以下两种:
    scancode_push:用户完成扫描后,系统会自动跳转访问二维码保存的地址信息。同时服务器会向第三方发送事件消息推送。
    scancode_waitmsg:用户扫描完成后,系统会弹出“消息接收中”提示框。同时服务器会向第三方发送事件消息推送。
    以scancode_waitmsg事件推送为例,实现当用户完成扫码后主动提示用户“扫码成功”消息,如图所示

    找到IndexController.class.php控制器文件,修改configToken()方法,新增以下代码:
    1.         // 配置服务器Token,微信请求数据入口
    2.         public function configToken()
    3.         {
    4.                 // 服务器签名验证
    5.                 if(!$this->token_auth($this->token))
    6.                 {
    7.                         exit('error');
    8.                 }

    9.                 // 判断是的Token验证还是用户消息转发
    10.                 if($_GET['echostr']){
    11.                         exit($_GET['echostr']);
    12.                 }
    13.                 else
    14.                 {
    15.                         // 数据包接收
    16.                         $xml  = file_get_contents("php://input");
    17.                         // 引入PHP消息处理类库并实例化
    18.                         import("@.Lib.Wx.WxBase");
    19.                         $wx = new \WxBase();
    20.                         // 转换XML格式为数组格式
    21.                         $data = $wx::xml2data($xml);
    22.                         $wx->setData($data);
    23.                         // 保存数据到data属性
    24.                         $this->data = $data;
    25.                         // 把接收到的数据写入本地文件
    26.                         file_put_contents('./wechat_data.json', json_encode($data));
    27.                         // 扫码事件处理
    28.                         if($this->data['MsgType'] == 'event' && $this->data['Event'] == 'scancode_waitmsg')
    29.                         {
    30.                                 if($this->data['EventKey'] == 'show_success' )
    31.                                 {
    32.                                         $wx->replyText('扫码成功!');
    33.                                 }
    34.                         }

    35.                         exit('success');
    36.                 }
    37.         }
    复制代码
    创建两种推送的菜单JSON的菜单JSON格式如下:
    1.         public function myMenu()
    2.         {
    3.                 $data = '{
    4.                 "button":[
    5.                         {
    6.                                 "name":"扫码",
    7.                                 "sub_button":[
    8.                         {
    9.                                 "type":"scancode_waitmsg",
    10.                                 "name":"扫码带提示",
    11.                                 "key" :"show_success",
    12.                                 "sub_button":[]
    13.                         },
    14.                                 {
    15.                                 "type":"scancode_push",
    16.                                 "name":"扫码推事件",
    17.                                 "key" :"rselfmenu_0_1",
    18.                                 "sub_button":[]
    19.                                 }
    20.                         }]
    21.                 ]}';
    22.                 import('@.Lib.Wx.WxMenu');
    23.                 $wx = new \WxMenu(APP_ID , APP_SECRET);
    24.                 dump($wx->createMenu($data));
    25.         }
    复制代码




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    造物之前,必先造人。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-3-14 22:24
  • 签到天数: 160 天

    [LV.7]常住居民III

    1074

    主题

    1139

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    18046
     楼主| 发表于 2017-5-20 21:03:47 | 显示全部楼层
    已转载于企鹅(行家汇)、头条等,发表于2017年5月20日第三篇
    造物之前,必先造人。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|亿仁网 ( 粤ICP备16098737  

    GMT+8, 2020-8-3 17:44 , Processed in 0.248301 second(s), 31 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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