wazou6888 2017-05-26 02:22 采纳率: 0%
浏览 9355
已结题

微信带参数的二维码,生成二维码后我怎么取scene_id传入的值

二维码已经生成但是那个scene_id怎么才能得到,NET
求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解求解

  • 写回答

1条回答

  • Go 旅城通票 2017-05-26 03:49
    关注

    微信后台需要开启开发者模式,用户扫描二维码会推送你的scene_id值到你配置的接口去,自己获取信息就行了

    如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者,发送xml结构如下面的

    event节点值为SCAN,EventKey节点就是scene_id

    https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140454&t=0.7641179934827862#2

     <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>
    

    上面的xml字符串内容可以通过Request.InputStream来获取,然后XmlDocument加载xml字符串,进行xml节点获取操作,你微信后台配置的接口代码大概如下

    
    
            if (Request.InputStream.Length > 0)
            {
                System.IO.StreamReader reader = new System.IO.StreamReader(Request.InputStream, System.Text.Encoding.UTF8);
                string s = reader.ReadToEnd();//xml字符串
                reader.Close();
    
    
                System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                doc.LoadXml(s);
                System.Xml.XmlNodeList xnl = doc.GetElementsByTagName("Event");
                if (xnl.Count > 0 && xnl[0].InnerText == "SCAN")//扫码事件
                {
                    xnl = doc.GetElementsByTagName("EventKey");
                    if (xnl.Count > 0)
                    {
                        string scene_id = xnl[0].InnerText;///
                        //....其他操作
                    }
                }
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作