<?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; // 返回数据
} ?>

微信view类型的菜单获取openid范例的更多相关文章

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

    关键字 微信公众平台 自定义菜单 OpenID作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇微信 ...

  2. PHP 微信公众号/小程序获取openid,用户信息

    1.获取code (获得openid的前置条件) 地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redi ...

  3. 微信小程序开发之获取openid及用户信息

    1. 获取openid 1.1 获取code 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key).用户数据的加解 ...

  4. 微信多客服插件获取openid

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. 微信网页授权 通过code获取openid 报错40163 code been used

    使用好好的微信功能,突然安卓无法正常使用了,苹果的正常. 安卓报错内容: 40163,code been used. 题外话:微信的东西,为何报英文错误呢,装什么13. 实测结果:安卓获取用户信息时 ...

  6. PHP微信公共号授权,获取openid、unionid。

    /** * 获取code * @return code code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期 */ publ ...

  7. 微信小程序wx.login()获取openid,附:前端+后端代码

    微信小程序开放了微信登录的api,无论是个人还是企业申请的小程序均可使用. 首先创建一个项目,把这些代码都清空,我们自己写! 然后,开始写了!首先index.wxml,写一个button用于发起登录 ...

  8. 微信公众号开发前端获取openId

    参考 https://blog.csdn.net/qq_35430000/article/details/79299529

  9. 微信自定义菜单view类型获取openid访问网页

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

随机推荐

  1. Python函数:使用谷歌翻译翻译英语字符串

    代码是同事写的,我把它单独抠出来,可以作为工具函数使用.当然,性能还是个问题,有待解决. import random import cookielib import urllib import url ...

  2. Android常用传感器用法一览(2)

    在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用. #define SENSOR_TYPE_ACCELEROMETER       1 //加速度#de ...

  3. 更新node版本

    步骤如下:1.查看当前的node版本 node -v 2.清除npm当前缓存信息 npm cache clean -f 3.执行下载node npm install -g n 4.下载成功后执行安装 ...

  4. React-Native系列Android——Touch事件原理及状态效果

    Native原生相比于Hybrid或H5最大长处是具有流畅和复杂的交互效果,触摸事件便是当中重要一项,包括点击(Click).长按(LongClick).手势(gesture)等. 以最简单常见的点击 ...

  5. 一直加载“fonts.googleapis.com”的解决办法

    原文:http://www.tuicool.com/articles/6bayeq 最近国内对google又开始了新一轮的屏蔽,很多wordpress用户发现一个现象,那就是网站前台和后台打开都非常慢 ...

  6. user-defined conversion

    http://en.cppreference.com/w/cpp/language/cast_operator

  7. js 获取请求网络协议、IP、端口号、项目名称

      js 获取请求网络协议.IP.端口号.项目名称 CreationTime--2018年6月19日15点54分 Author:Marydon /** * 获取url请求前缀 * @return ht ...

  8. 一个架构合理的UITableView应该是如何的?

    原文: http://www.chentoo.com/?p=200 iOS 开发中,UITableView 应该是最经常使用到的了.完毕一个UITableView应该实现他的DataSource和De ...

  9. SGA 的自动管理

    在Oracle10g中,不必再如从前一样用下列各个参数分别指定SGA的每个部分的大小.也就是说不需要首先评估SGA各组件的大小,并且在init<SID>.ora初始参数文件中分组件指定.( ...

  10. 创建cocos2d-x+lua项目

    1>     创建cocos2d-x+lua项目 进入到cocos2d-x-2.1.5\tools\project-creator文件夹运行下面命令: python create_project ...