微信公众平台实现获取用户OpenID的方法

微信公众平台实现获取用户OpenID的方法

这篇文章主要介绍了微信公众平台实现获取用户OpenID的方法,需要开发人员经过微信授权后获取高级接口才能使用此功能,用户OpenID对于微信公众平台建设有着非常广泛的用途,需要的朋友可以参考下

本文实例讲述了微信公众平台实现获取用户OpenID的方法。分享给大家供大家参考。具体分析如下:

用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接),达到打开网页的目的,但是view不能获取用户的openid,需要使用微信“网页授权获取用户基本信息”高级接口结合使用,获得用户的登入个人信息。

具体方法:

1、配置网页授权回调域名,如 www.jb51.net

2、模拟公众号的第三方网页,//www.jb51.net/getcodeurl.php

<?php 
if(isset($_SESSION['user'])){ 
 print_r($_SESSION['user']);
exit;
}
$APPID='公众号在微信的appid';
$REDIRECT_URI='//www.jb51.net/callback.php';
$scope='snsapi_base';
//$scope='snsapi_userinfo';//需要授权
$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect';
header("Location:".$url);
?>

 3、第三方网页的回跳url中,首先从请求中取得code,然后根据code进一步换取openid和access_token,然后就可以根据openid和access_token调用微信的相关接口查询用户信息了。
<?php ////www.jb51.net/callback.php $appid = "公众号在微信的appid"; $secret = "公众号在微信的app secret"; $code = $_GET["code"]; $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_token_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $json_obj = json_decode($res,true); //根据openid和access_token查询用户信息 $access_token = $json_obj['access_token']; $openid = $json_obj['openid']; $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_user_info_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); //解析json $user_obj = json_decode($res,true); $_SESSION['user'] = $user_obj; print_r($user_obj); ?>

希望本文所述对大家基于php的微信公众平台开发有所帮助。

转载;https://www.jb51.net/article/64174.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112504.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • poetry和poet_什么是poetry

    poetry和poet_什么是poetryPoetry的基本使用准备工作如果你是在一个已有的项目里使用Poetry,你只需要执行poetryinit命令来创建一个pyproject.toml文件:poetryinit可看到

  • goland 激活码3月最新在线激活「建议收藏」

    goland 激活码3月最新在线激活,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • typora主题修改后保存_typora设置字体

    typora主题修改后保存_typora设置字体typora买了几天了,一直思考什么时候去学习下,毕竟,以前是免费的,没那么多讲究,就是把它当做一个普普通通的编辑器使用。似乎也没有用它的任何功能,甚至连官网文档那么详细的解释都没看;可见,虽然使用着免费的优秀的产品,竟然连最基础的功能都不会。换了个主题,这个是看着官网文档做的。主题下载首先,去下载了一个主题,https://theme.typora.io/;选一个自己喜欢的。设置主题其次,打开偏好设置,找到主题保存的文件夹。操作如下:流程图#mermaid-svg-FyDmLYlb0MV3

    2022年10月28日
  • Java是什么?主要是干什么的?「建议收藏」

    Java是什么?主要是干什么的?「建议收藏」随着Java技术不断发展,许多人都想问:Java是什么?主要是干什么的呀?现在小朗来为大家解惑。java是一种高级计算机语言,一种可以编写跨平台应用软件、完全面向对象的程序设计语言。那Java主要是干嘛的呀?一、java可以做网站Java主要可以用于编写网站,如今许多商业网站都用Jsp写的,JSP全称JavaServerPages。它是一种动态网站技术性,例如大家了解的163,一些政府门户网站全是选用JSP撰写的。因此学习培训Java的同学们能够找开发网站层面的工作中,并且…

  • 软件设计师考点汇总(室内设计师个人总结)

    文章目录分值分布考点总结计算机组成与体系结构数据表示进制转换编码浮点数运算CPU结构运算器控制器Flynn分类法CISC:复杂指令集;RISC:精简指令集流水线流水线相关概念存储系统Cache主存内存磁盘总线系统可靠性差错控制-校验码操作系统进程管理死锁及银行家算法存储管理页面置换算法文件管理索引文件目录结构位示图磁盘管理I/O设备管理虚设备与SPOOLING技术微内核操作系统数据库数据库模式数据库设计过程E-R模型关系代数规范化理论函数依赖键范式模式分解并发控制数据库安全备份恢复数据仓库与数据挖掘反规范化

  • namecheap mx记录配置邮箱

    namecheap mx记录配置邮箱

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号