热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java微信菜单获取openid_微信公众平台开发(99)自定义菜单获取OpenID

关键字微信公众平台自定义菜单OpenID作者:方倍工作室原文:http:www.cnblogs.comtxw1958pweixin-menu-get-o

关键字 微信公众平台 自定义菜单 OpenID

作者:方倍工作室

原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html

在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单中获得用户的OpenID。

本篇开发教程的实质是微信自定义菜单及OAuth2.0授权的灵活运用。

本文分为以下两个部分:

拥有高级接口权限时的获取(基于view事件)

没有高级接口权限时的获取(基于click事件)

一、拥有高级接口权限

拥有高级接口权限时,我们使用OAuth2.0授权的方式来获取。

在设置好授权回调页面域名之后,我们需要构造菜单,为了方便同时讲解下一小节,我们菜单构造如下

{"button": [

{"type": "click","name": "图文获取","key": "图文"},

{"type": "view","name": "授权获取","url": "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0738856156f7323c&redirect_uri=http://israel.sinaapp.com/oauth2/&response_type=code&scope=snsapi_base&state=1#wechat_redirect"}

]

}

菜单的构成中,核心思想在于url是一个授权回调url,这样才能在菜单点击的时候使用oauth2.0授权获得openid

这样将生成两个菜单如下

bb14de0483fce99bc02fc26b6078ffde.png

当点击 授权获取的时候,将访问授权页面,页面将使用OAuth2.0的方式获得openid。

跳转后显示如下:

25567e62739117effe0d40704e14bb36.png

二、没有高级接口权限

对于没有高级接口权限的账号,就不能使用view事件获得OpenID,需要使用click事件来实现

实现原理就是获得接收消息中的FromUserName值,并且在url中构造openid的参数即可

在自定义菜单中响应代码如下

1 private function receiveEvent($object)2 {3 $content = "";4 switch ($object->Event)5 {6 case "subscribe":

7 $content[] = array("Title"=>"欢迎关注方倍工作室", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");8 break;9 case "CLICK":

10 switch ($object->EventKey)11 {12 case "图文":

13 $content[] = array("Title"=>"OpenID", "Description"=>"你的OpenID为:".$object->FromUserName, "PicUrl"=>"", "Url" =>"http://m.cnblogs.com/?u=txw1958&openid=".$object->FromUserName);14 break;15 }16 break;17 }18 if(is_array($content)){19 $result = $this->transmitNews($object, $content);20 }else{21 $result = $this->transmitText($object, $content);22 }23 return $result;24 }

运行后效果如下所示。

1c59642b4b27193b78a7f5cd7de5a3ea.png



推荐阅读
author-avatar
木子小平方_530
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有