php微信菜单之扫一扫

微信开放了2个扫码事件:

scancode_push:扫码推事件的事件推送

scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送


我只需要第一个扫码事件

后台添加菜单时新增扫一扫选项,这个无关紧要:

<option value="0">菜单类型</option>
<option value="1" {if $wxmenu.wm_type ==1 } selected="selected" {/if}>click事件</option>
<option value="2" {if $wxmenu.wm_type ==2 } selected="selected" {/if}>url链接</option>
 <option value="3" {if $wxmenu.wm_type ==3 } selected="selected" {/if}>扫一扫</option>

在构建菜单时就需要判断菜单类型,加入扫码事件:

                               elseif($v['wm_type'] == 3)
{
$type = "scancode_push";  //菜单类型为扫码
$key = $v['wm_key'];
$data.='{"type":"'.$type.'",';
$data.='"name":"'.$name.'",'; //菜单名称
$data.='"key":"'.$key.'"}'; //菜单key值
}


在获取微信推送的数据时,只需要判断事件类型是否为scancode_push,并获取到扫码结果就行了,扫码推送事件的xml数据包示例为:

推送XML数据包示例:

<xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
<FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
<CreateTime>1408090606</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[scancode_waitmsg]]></Event>
<EventKey><![CDATA[6]]></EventKey>
<ScanCodeInfo><ScanType><![CDATA[qrcode]]></ScanType>
<ScanResult><![CDATA[2]]></ScanResult>
</ScanCodeInfo>
</xml>

参数说明:

参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgType消息类型,event
Event事件类型,scancode_waitmsg
EventKey事件KEY值,由开发者在创建菜单时设定
ScanCodeInfo扫描信息
ScanType扫描类型,一般是qrcode
ScanResult扫描结果,即二维码对应的字符串信息


我们只需要获取到ScanResult并显示出来就可以了;


$msgEvent = $postObj->Event;

if($msgEvent ==  "scancode_push")
        {
            $res = $postObj->ScanCodeInfo->ScanResult;
            echo $res;
            exit;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值