摘要:引入封装的类使用接口通过获得触发微信返回码获取码,以获取其实需要一个包,但是我不知道怎么传文件,我只能复制一些能用的函数了作用生成可以获得的作用格式化参数,签名过程需要使用作用设置获取微信用户数据初始化设置超时运行
public function getuserinfo(){ header("Content-type:text/html;charset=utf-8"); ini_set("date.timezone", "Asia/Shanghai"); //引入封装的类 // import("Common.Lib.WxPayPubHelper.WxPayPubHelper"); //使用jsapi接口 //$jsApi = new JsApi_pub(); /* 通过code获得openid*/ if (!isset($_GET["code"])) { //触发微信返回code码 $url = $this->createOauthUrlForCode("http://" . $_SERVER["HTTP_HOST"] . "/Web/Index/index.html"); header("Location: $url"); } else { //获取code码,以获取openid $code = I("get.code"); if (!empty($code)) { $this->setCode($code); $result_wechat = $this->getWxInfomation(); if ($result_wechat) { if (!M("web_user")->where(array("openid" => $result_wechat["openid"]))->find()) M("web_user")->add($result_wechat); cookie("openid", $result_wechat["openid"]); cookie("nickname", $result_wechat["nickname"]); cookie("wechatinfo", $result_wechat); } } } } *** > //其实需要一个包,但是我不知道怎么传文件,我只能复制一些能用的函数了 /** * 作用:生成可以获得code的url */ function createOauthUrlForCode($redirectUrl) { $urlObj["appid"] = WxPayConf_pub::APPID; $urlObj["redirect_uri"] = "$redirectUrl"; $urlObj["response_type"] = "code"; $urlObj["scope"] = "snsapi_userinfo"; $urlObj["state"] = "STATE" . "#wechat_redirect"; $bizString = $this->formatBizQueryParaMap($urlObj, false); return "https://open.weixin.qq.com/connect/oauth2/authorize?" . $bizString; } /** * 作用:格式化参数,签名过程需要使用 */ function formatBizQueryParaMap($paraMap, $urlencode) { $buff = ""; ksort($paraMap); foreach ($paraMap as $k => $v) { if ($urlencode) { $v = urlencode($v); } //$buff .= strtolower($k) . "=" . $v . "&"; $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0) { $reqPar = substr($buff, 0, strlen($buff) - 1); } return $reqPar; } /** * 作用:设置code */ function setCode($code_) { $this->code = $code_; } /** * 获取微信用户数据 * @return mixed */ function getWxInfomation() { $url = $this->createOauthUrlForOpenid(); //初始化curl $ch = curl_init(); //设置超时 curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //运行curl,结果以jason形式返回 $res = curl_exec($ch); curl_close($ch); //取出openid $data = json_decode($res, true); if ($data) { $url = $this->createOauthUrlForUserInfo($data["access_token"], $data["openid"]); //初始化curl $ch = curl_init(); //设置超时 curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //运行curl,结果以jason形式返回 $res = curl_exec($ch); curl_close($ch); //取出openid $data = json_decode($res, true); return $data; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/22264.html
摘要:现在的网站基本都接入微信登陆了,就好像下面这样的。只需要用微信扫一下二维码,这个网站就可以展示你的微信昵称和头像,免去注册账号和输入密码登录的步骤,还免去设置头像和昵称的步骤,所以是挺方便的。 现在的网站基本都接入微信登陆了,就好像下面这样的。 showImg(https://segmentfault.com/img/bVbc4jV?w=523&h=508); 只需要用微信扫一下二维码...
摘要:我们知道,服务号有获取用户基本信息的接口,通过网页授权获取的。但是认证的订阅号也有获取用户基本信息的接口了,但是与服务号不同的是,这个需要用户主动触发才可以获得,需要用户发送任意关键词或者点击菜单。那么最后一步,就是获取用户基本信息了。 我们知道,服务号有获取用户基本信息的接口,通过oauth2.0网页授权获取的。但是认证的订阅号也有获取用户基本信息的接口了,但是与服务号不同的是,这个...
摘要:微信开放平台提供了网站扫码登录的接口,用于获取用户基本信息头像,昵称方便网站快速接入微信登录,快捷登录。需要使用登录接口,需要成为微信开放平台认证开发者元才可以获得这个接口权限。 微信开放平台提供了网站扫码登录的接口,用于获取用户基本信息(头像,昵称)方便网站快速接入微信登录,快捷登录。需要使用登录接口,需要成为微信开放平台认证开发者(300元)才可以获得这个接口权限。 准备工作: 1...
摘要:分享页面的实际链接当前页面的链接需要编码公众号的当前页面的链接,需要编码其他值均不用改动点击允许后跳转的链接是。此处的可以用来调取接口获取微信用户的相关信息每次用户授权带上的将不一样,只能使用一次,分钟未被使用自动过期。 vue + 微信获取用户信息 本次项目做到一个点赞功能,即分享出去一个页面给微信好友,微信好友点开并点赞,需要将点赞用户的微信昵称,微信头像以及微信openid,微信...
摘要:分享页面的实际链接当前页面的链接需要编码公众号的当前页面的链接,需要编码其他值均不用改动点击允许后跳转的链接是。此处的可以用来调取接口获取微信用户的相关信息每次用户授权带上的将不一样,只能使用一次,分钟未被使用自动过期。 vue + 微信获取用户信息 本次项目做到一个点赞功能,即分享出去一个页面给微信好友,微信好友点开并点赞,需要将点赞用户的微信昵称,微信头像以及微信openid,微信...
阅读 1247·2023-04-25 19:33
阅读 1151·2021-10-21 09:39
阅读 3623·2021-09-09 09:32
阅读 2574·2019-08-30 10:58
阅读 1567·2019-08-29 16:17
阅读 856·2019-08-29 15:29
阅读 2857·2019-08-26 11:55
阅读 2629·2019-08-26 10:33