欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信扫描带参数二维码事件

程序员文章站 2023-08-31 10:20:06
用户扫描带场景值二维码时,可能推送以下两种事件:如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。1. 用户未关注时,进行关注后的事件推送推送XML数据包示例:< ......

用户扫描带场景值二维码时,可能推送以下两种事件:

如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。
1. 用户未关注时,进行关注后的事件推送

推送xml数据包示例:

<xml><tousername><![cdata[touser]></tousername>
<fromusername><![cdata[fromuser]></fromusername>
<createtime>123456789</createtime>
<msgtype><![cdata[event]></msgtype>
<event><![cdata[subscribe]></event>
<eventkey><![cdata[qrscene_123123]></eventkey>
<ticket><![cdata[ticket]></ticket>
</xml>
参数说明:

参数 描述
tousername 开发者微信号
fromusername 发送方帐号(一个openid)
createtime 消息创建时间 (整型)
msgtype 消息类型,event
event 事件类型,subscribe
eventkey 事件key值,qrscene_为前缀,后面为二维码的参数值
ticket 二维码的ticket,可用来换取二维码图片
2. 用户已关注时的事件推送

推送xml数据包示例:

<xml>
<tousername><![cdata[touser]></tousername>
<fromusername><![cdata[fromuser]></fromusername>
<createtime>123456789</createtime>
<msgtype><![cdata[event]></msgtype>
<event><![cdata[scan]></event>
<eventkey><![cdata[scene_value]></eventkey>
<ticket><![cdata[ticket]></ticket>
</xml>
参数说明:

参数 描述
tousername 开发者微信号
fromusername 发送方帐号(一个openid)
createtime 消息创建时间 (整型)
msgtype 消息类型,event
event 事件类型,scan
eventkey 事件key值,是一个32位无符号整数,即创建二维码时的二维码scene_id
ticket 二维码的ticket,可用来换取二维码图片


案例:
        //1、扫码获取微信post过来的xml数据
            $postarr = $globals['http_raw_post_data'];
            $postobj = simplexml_load_string( $postarr );

            //未订阅时 ,eventkey为qrscene_1984;订阅后,eventkey为1984
            if( strtolower($postobj->event) == 'subscribe'){
                    $account_id = substr(trim($postobj->eventkey), 8);//输出1984
            } else {
                    $account_id = trim($postobj->eventkey);
            }