摘要:引入封裝的類使用接口通過獲得觸發微信返回碼獲取碼,以獲取其實需要一個包,但是我不知道怎么傳文件,我只能復制一些能用的函數了作用生成可以獲得的作用格式化參數,簽名過程需要使用作用設置獲取微信用戶數據初始化設置超時運行
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; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22264.html
摘要:現在的網站基本都接入微信登陸了,就好像下面這樣的。只需要用微信掃一下二維碼,這個網站就可以展示你的微信昵稱和頭像,免去注冊賬號和輸入密碼登錄的步驟,還免去設置頭像和昵稱的步驟,所以是挺方便的。 現在的網站基本都接入微信登陸了,就好像下面這樣的。 showImg(https://segmentfault.com/img/bVbc4jV?w=523&h=508); 只需要用微信掃一下二維碼...
摘要:我們知道,服務號有獲取用戶基本信息的接口,通過網頁授權獲取的。但是認證的訂閱號也有獲取用戶基本信息的接口了,但是與服務號不同的是,這個需要用戶主動觸發才可以獲得,需要用戶發送任意關鍵詞或者點擊菜單。那么最后一步,就是獲取用戶基本信息了。 我們知道,服務號有獲取用戶基本信息的接口,通過oauth2.0網頁授權獲取的。但是認證的訂閱號也有獲取用戶基本信息的接口了,但是與服務號不同的是,這個...
摘要:微信開放平臺提供了網站掃碼登錄的接口,用于獲取用戶基本信息頭像,昵稱方便網站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開放平臺認證開發者元才可以獲得這個接口權限。 微信開放平臺提供了網站掃碼登錄的接口,用于獲取用戶基本信息(頭像,昵稱)方便網站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開放平臺認證開發者(300元)才可以獲得這個接口權限。 準備工作: 1...
摘要:分享頁面的實際鏈接當前頁面的鏈接需要編碼公眾號的當前頁面的鏈接,需要編碼其他值均不用改動點擊允許后跳轉的鏈接是。此處的可以用來調取接口獲取微信用戶的相關信息每次用戶授權帶上的將不一樣,只能使用一次,分鐘未被使用自動過期。 vue + 微信獲取用戶信息 本次項目做到一個點贊功能,即分享出去一個頁面給微信好友,微信好友點開并點贊,需要將點贊用戶的微信昵稱,微信頭像以及微信openid,微信...
摘要:分享頁面的實際鏈接當前頁面的鏈接需要編碼公眾號的當前頁面的鏈接,需要編碼其他值均不用改動點擊允許后跳轉的鏈接是。此處的可以用來調取接口獲取微信用戶的相關信息每次用戶授權帶上的將不一樣,只能使用一次,分鐘未被使用自動過期。 vue + 微信獲取用戶信息 本次項目做到一個點贊功能,即分享出去一個頁面給微信好友,微信好友點開并點贊,需要將點贊用戶的微信昵稱,微信頭像以及微信openid,微信...
閱讀 1289·2023-04-25 19:33
閱讀 1171·2021-10-21 09:39
閱讀 3644·2021-09-09 09:32
閱讀 2614·2019-08-30 10:58
閱讀 1600·2019-08-29 16:17
閱讀 873·2019-08-29 15:29
閱讀 2885·2019-08-26 11:55
閱讀 2658·2019-08-26 10:33