`

微信view类型的菜单获取openid实例

 
阅读更多

微信开发热度不断攀升,但他的服务号、订阅号着实让人头疼,以下摘录两个地址供参考。

微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/index.php

服务号、订阅号的说明:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html

 

看完这些文档,相信很多朋友还是不明白所以然,以下给出微信view类型的菜单,通过Oauth2.0接口获取openid的实例,其他简单实例见附件。

 

<?php
//启用session
session_start();
//编码
header("Content-type: text/html; charset=utf-8");
//保存微信openid
$weixin_openid = "";
//保存从微信得到的code
$code = "";
//获得菜单中设置的state值
$state = "";

//修改为注册的测试号信息
$appid = "wx834404c1d1dbb5ec";
$secret = "bf03cfa823d80dd537bd18e83ce9a4e4";

if (isset($_GET['code']) && isset($_GET['state']) ){
	$weixin_openid = GetOpenid($_GET['code']);
	$code = $_GET['code'];
	$state = $_GET['state'];
    //echo $resultStr;
}else{
    echo "NO CODE";
	return ;
}

// store session data
$_SESSION['weixin_openid']=$weixin_openid;

if($state == "s1"){
	//我的课堂
	header('Location: courseCenter.php');
}else if($state == "s2"){
	//订单记录
	header('Location: orderList.php');
}else{
	$textTpl="由认证接口进入我的课堂,<br/>您的 wx_openid: %s <br/> code: %s <br/> state: %s <br/>
	<a href='orderList.php'>订单记录</a>";
	$resultStr = sprintf($textTpl, $weixin_openid, $code, $state);

	echo  $resultStr ;
}



//获取微信的openid
function GetOpenid($c_code)
{
	$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid . "&secret=" . $secret . "&code=" . $c_code .  "&grant_type=authorization_code";
	//$url = "http://www.baidu.com";
	$result = getData($url);

	$jsondecode = json_decode($result);
	if($jsondecode != null){
		if(property_exists ( $jsondecode, "openid" ) )
		{
			return $jsondecode->{"openid"};
		}else{
			return "code is invalid.";
		}
	}

	return null;
}
//获取https的get请求结果
function getData($c_url)
{
	$curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $c_url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
//    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
//    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
       echo 'Errno'.curl_error($curl);//捕抓异常
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}

?>

 

分享到:
评论

相关推荐

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

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

    微信获取用户信息demo

    - 用户信息接口:使用获取的access_token和openid从微信服务器获取用户信息。 - 消息处理接口:接收并处理微信服务器的推送消息,根据消息类型做出相应响应。 5. **代码结构与组织** 项目可能按照MVC(Model-...

    微信扫码登录实例.zip

    微信提供了用于登录的API,包括请求授权码、获取access_token、获取openid和获取用户基本信息等步骤。在MvcApplication1项目中,这些接口的调用会体现在控制器或服务类中。 3. **Web应用程序结构**: “WebWeChat...

    微信小程序 实例汇总 完整项目源代码

    这部分会涉及到微信开放接口的调用,如获取用户openid、昵称和头像等。 2. **页面路由**:学习如何在小程序中切换页面,理解`wx.navigateTo`、`wx.reLaunch`、`wx.switchTab`等路由API的用法。 3. **数据管理**:...

    C#微信检测删除好友

    请注意,实际操作中需要替换`GetAccessToken`方法为获取微信Access Token的实现,同时替换`OPENID列表`为实际的用户OpenID。 通过这种方式,我们可以在不直接发送消息的情况下检测微信好友关系,避免了打扰对方的...

    微信商城小程序.zip

    例如,登录功能可能涉及获取微信用户的OpenID,商品购买可能涉及订单创建和支付接口调用。 5. **JSON配置文件**:每个小程序页面都有对应的json配置文件,用来设置页面的导航栏、背景色、网络请求域名等属性,定义...

    微信小程序 完整项目源代码.rar

    11. **微信登录与用户授权**:通过`wx.login`获取用户的OpenID,结合后端服务器实现用户身份验证。此外,还可以使用`wx.authorize`请求用户授权,获取用户信息。 12. **导航与跳转**:`wx.navigateTo`、`wx....

    微信小程序开发-仿爱卡案例源码.zip

    5. 用户登录与授权:微信小程序支持一键登录功能,用户授权后,可以获取微信用户的OpenID,用于识别用户身份并实现个性化服务。 三、源码学习与实践 通过分析和研究这个源码,你可以了解如何构建微信小程序的具体...

    微信小程序源码-我的商城

    9. 授权与登录:微信小程序提供了`wx.login`接口获取用户的OpenID,用于识别用户并提供个性化服务。同时,可能会涉及到微信的静默授权,让用户无感知地完成登录过程。 10. 页面生命周期:每个小程序页面都有其特定...

    微信小程序开发-菜谱案例源码.zip

    此外,可能还有登录、评论等涉及到微信接口的功能,比如`wx.login`获取用户OpenID,`wx.getUserInfo`获取用户基本信息。 5. **页面路由**: 微信小程序的页面跳转是通过`wx.navigateTo`、`wx.redirectTo`、`wx....

    仿QQ微信登录页面.zip安卓程序项目源码资源下载

    3. 微信授权登录:调用微信的登录接口,获取用户的OpenID和AccessToken。 4. 用户信息获取:利用AccessToken获取用户基本信息,如昵称、头像等。 至于“小程序”,可能源码还展示了如何在Android应用中调用微信小...

    毕业设计 微信小程序设计 小程序模板【截图+源码】 仁怀酱酒宝:酒类商城模板

    微信小程序能够获取用户基本信息,通过wx.login API获取用户的OpenID,结合后端服务器实现用户登录和授权。保持用户登录态,便于实现个性化推荐和服务。 9. **状态管理**: 在小程序中,可以使用官方提供的全局...

    微信小程序开发-智能用电案例源码.zip

    微信小程序提供了wx.login()方法,用于获取用户的OpenID,然后通过后端服务器进行身份验证。 9. **推送与通知**: 如果小程序有提醒用户用电情况的功能,可能需要使用到微信小程序的消息推送服务,如定时推送用电...

    微信小程序开发-今日更新选课投票案例源码.zip

    这个"微信小程序开发-今日更新选课投票案例源码.zip"压缩包包含了一个具体的开发实例,可以帮助我们深入了解微信小程序在实际应用场景中的开发流程和技术要点。 1. **微信小程序开发环境**:首先,开发微信小程序...

    毕业设计 微信小程序设计 外卖点餐 外卖:实现类似锚点功能

    - **用户授权**:微信小程序的用户登录授权机制,如何获取和使用微信用户的OpenID。 - **UI设计**:遵循微信小程序的设计规范,创建美观、易用的用户界面。 - **调试与发布**:学会使用微信开发者工具进行代码调试、...

    微信小程序demo:在线聊天功能

    微信小程序提供了微信账号登录的接口,如wx.login(),获取用户的OpenID,然后服务器端进行身份验证。 7. **推送通知**:如果应用支持离线消息提醒,可能需要结合微信服务器的推送服务,当有新消息时,向用户发送...

    微信小程序开发-零食商城案例源码.zip

    在本压缩包“微信小程序开发-零食商城案例源码.zip”中,包含了一个完整的微信小程序开发实例,专注于创建一个零食商城应用。这个案例为开发者提供了一个实战平台,以学习和理解微信小程序的开发流程和技术要点。 ...

    微信小程序开发-仿V2EX社区案例源码.zip

    本资源是“微信小程序开发-仿V2EX社区案例源码”,它提供了模仿知名论坛V2EX社区功能的小程序开发实例,适合学习者理解和掌握微信小程序的基本开发流程和技术要点。 V2EX社区以其独特的设计和活跃的用户群体著称,...

    微信小程序-模仿京东白条微信小程序

    9. **微信登录**:为了实现个性化服务,开发者可能会使用微信小程序的登录功能,如wx.login(),获取用户的OpenID,以此关联到京东账户。 10. **调试与发布**:开发完成后,开发者会使用微信开发者工具进行调试,...

Global site tag (gtag.js) - Google Analytics