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

来源:互联网 发布:java程序设计pdf百度云 编辑:程序博客网 时间:2024/05/02 00:40

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

0 0