首页 > 微信扫码推事件

微信扫码推事件

1 支持的二维码是不是只能通过为新生成:http://mp.weixin.qq.com/wiki/index.php?title=%E7%94%9F%E6%88%90%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81

2 即使用了微信的二维码,发现推送的事件不够完整,比如菜单:

    "button": [
        {
            "name": "扫码",
            sub_button: [
                {
                    "type": "scancode_push",
                    "name": "登录",
                    "key": "checkin"
                }.
                {
                    "type": "scancode_push",
                    "name": "登出",
                    "key": "checkout"
                }
            ]
        }

结果接收到的消息:

{"ToUserName":"xx","FromUserName":"xx","CreateTime":"1416224960","MsgType":"event","Event":"SCAN","EventKey":"123","Ticket":"xx=="}

123是二维码的scene_id,但是我需要的key:checkin或者checkout并没有接收到,这样就没法确认到底是什么类型的操作。

怎么破?

更新,经过查找,打印日志的方式发现服务端的确收到了两次事件推送:分别是

{ event: 'SCAN', event_key: '123', created: '1416307544' }
{ event: 'scancode_push', event_key: 'sc_in', created: '1416307544' }

但问题是我都是原样返回的,但是微信端死活收不到第二条信息。


这根本是不同的事件嘛~你扫码肯定微信推给你的是扫码消息,你又没点菜单。


ps:不知道求助邮件是提问者发的,还是发的,我刚好在看这问题,然后就收到了的邮件,我还在想不会把这题发给我了吧,打开一看果真。

第一个问题我也不是很清楚,因为没试验过。

来第二个问题:
你测试时扫描的应该是当前公众号的关注二维码;
从你点击菜单到你收到问题中收到的数据,你应该总共收到两次事件推送;

  1. 第一次是你点击「登录」或「登出」菜单时的一次事件推送;
  2. 第二次是你扫描二维码成功后的事件推送;

这样问题应该就解决了,你在问题中列出的接收到的消息应该是第二次的推送信息,根据你的提问,其实你是想要第一次的推送消息。

ps:好吗,原来上次提问公众号也是你。


接着 @korvin 回答, 你可以把你需要的 key值 拼接到 scene_id 里面 譬如你 需要获取到的key值为 checkin 那么你 通过微信的接口生成的二维码的 scene_id 可以为 123_checkin;
扫码结束后

list($key,$checkin) = explode('_',$scene_id );
【热门文章】
【热门文章】