您的位置:首页 > 移动开发 > 微信开发

微信开发自定义菜单获取OpenID

2016-06-29 11:26 543 查看
OpenID:

每个微信用户对于每个公众号,有一个唯一的OpenID。对于其它公众号,OpenID是不同的

用途:

通过 OpenID,能访问到用户的基本信息
跟后台应用(比如商品销售)配合,可以管理用户的订单等数据
获取方法

1. 任何用户与公众号的交互,都会带OpenID
比如,文本消息、订阅事件、菜单Click 事件

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName> # OpenID
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>


2. 菜单跳转到外部网页,不带OpenID,只能用网页 OAuth。refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[www.yourwebpage.com]]></EventKey>
</xml>

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842&token=&lang=zh_CN
用户可能会反感网页授权的过程,解决方法:
1. 在菜单CLICK之后,后台回复一条图文消息,里面URL可以带上OpenID

case "Menu KEY":
$content[] = array("Title"=>"OpenID", "Description"=>"你的OpenID为:".$object->FromUserName, "PicUrl"=>"", "Url" =>"http://your.web.page/?openid=".$object->FromUserName);


2. 提示用户:为保障您购物的安全和便利,请在打开的网页中授权,授权只会访问你的公开信息

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信