反馈建议 标题:
邮箱:
内容:
  
[隐显目录]
1、如果用户没有关注公众平台,那么需要通过网页授权获取,具体看开发者文档→用户管理→网页授权获取用户信息部分。
2、如果用户关注了公众号,那么直接在事件推送的时候就可以获取,比如订阅事件触发后,会推送一下xml信息
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
  •  
其中FromUserName就是openid
如果用的是微信PHP-SDK,则更方便,以下是PHP-SDK对象的属性列表,每次事件触发回调服务器URL,都会生成weObj对象,而基本常用信息都在其中,openid就是_receive中的
FromUserName
$openid=$this->weObj->getRevFrom()
myweobj:Org\Util\Wechat::__set_state(array(
   'token' => 'qQemtM3tK5b5MejQDBKB',
   'encodingAesKey' => 'WMUypCpCY3YcyDjqAlAunHNSkT2Iw6ySwCArlyPT05n',
   'encrypt_type' => NULL,
   'appid' => 'wx0d8a443f204492b9',
   'appsecret' => '0984aac40a4a5970becf8c6091b4b404',
   'access_token' => 'Aa5uO2Q2z5M8uQs73jPbhoCO1fSrrZXfKrL_ZucQ6xl8l8fZSsF86z1X58FMQqSXncrD8k9Y2gnEpz6d7gN4VlTePjExqMQEizNG5K5BVEYVAFbAHAOTY',
   'jsapi_ticket' => NULL,
   'api_ticket' => NULL,
   'user_token' => NULL,
   'partnerid' => NULL,
   'partnerkey' => NULL,
   'paysignkey' => NULL,
   'postxml' => NULL,
   '_msg' => NULL,
   '_funcflag' => false,
   '_receive' => 
  array (
    'ToUserName' => 'gh_8e1f2cc6e8de',
    'FromUserName' => 'op0i1twFO-lMOoLbosEE74zfak1s',
    'CreateTime' => '1450267685',
    'MsgType' => 'event',
    'Event' => 'subscribe',
    'EventKey' => 'qrscene_1',
    'Ticket' => 'gQF48DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xLzJreTdYYTNsakRMMWFQMGYyR0pqAAIERgFxVgMEgDoJAA==',
  ),
   '_text_filter' => true,
   'debug' => false,
   'errCode' => 40001,
   'errMsg' => 'no access',
   'logcallback' => false,
))