摘要:引入封裝的類使用接口通過(guò)獲得觸發(fā)微信返回碼獲取碼,以獲取其實(shí)需要一個(gè)包,但是我不知道怎么傳文件,我只能復(fù)制一些能用的函數(shù)了作用生成可以獲得的作用格式化參數(shù),簽名過(guò)程需要使用作用設(shè)置獲取微信用戶數(shù)據(jù)初始化設(shè)置超時(shí)運(yùn)行
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(); /* 通過(guò)code獲得openid*/ if (!isset($_GET["code"])) { //觸發(fā)微信返回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); } } } } *** > //其實(shí)需要一個(gè)包,但是我不知道怎么傳文件,我只能復(fù)制一些能用的函數(shù)了 /** * 作用:生成可以獲得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; } /** * 作用:格式化參數(shù),簽名過(guò)程需要使用 */ 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; } /** * 作用:設(shè)置code */ function setCode($code_) { $this->code = $code_; } /** * 獲取微信用戶數(shù)據(jù) * @return mixed */ function getWxInfomation() { $url = $this->createOauthUrlForOpenid(); //初始化curl $ch = curl_init(); //設(shè)置超時(shí) 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); //運(yùn)行curl,結(jié)果以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(); //設(shè)置超時(shí) 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); //運(yùn)行curl,結(jié)果以jason形式返回 $res = curl_exec($ch); curl_close($ch); //取出openid $data = json_decode($res, true); return $data; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22264.html
摘要:現(xiàn)在的網(wǎng)站基本都接入微信登陸了,就好像下面這樣的。只需要用微信掃一下二維碼,這個(gè)網(wǎng)站就可以展示你的微信昵稱和頭像,免去注冊(cè)賬號(hào)和輸入密碼登錄的步驟,還免去設(shè)置頭像和昵稱的步驟,所以是挺方便的。 現(xiàn)在的網(wǎng)站基本都接入微信登陸了,就好像下面這樣的。 showImg(https://segmentfault.com/img/bVbc4jV?w=523&h=508); 只需要用微信掃一下二維碼...
摘要:詳情接口我們這里主要講的是網(wǎng)站應(yīng)用,網(wǎng)站應(yīng)用微信登錄是基于協(xié)議標(biāo)準(zhǔn)構(gòu)建的微信授權(quán)登錄系統(tǒng)即上面的協(xié)議。在微信客戶端授權(quán)登錄獲取用戶信息的可以查看。微信授權(quán)登錄目前支持模式,適用于擁有端的應(yīng)用授權(quán)。 一、OAuth2.0 OAuth(開(kāi)放授權(quán))是一個(gè)開(kāi)放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問(wèn)該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表),而無(wú)需將用戶名和密碼提供給第三方應(yīng)用。 ...
摘要:我們知道,服務(wù)號(hào)有獲取用戶基本信息的接口,通過(guò)網(wǎng)頁(yè)授權(quán)獲取的。但是認(rèn)證的訂閱號(hào)也有獲取用戶基本信息的接口了,但是與服務(wù)號(hào)不同的是,這個(gè)需要用戶主動(dòng)觸發(fā)才可以獲得,需要用戶發(fā)送任意關(guān)鍵詞或者點(diǎn)擊菜單。那么最后一步,就是獲取用戶基本信息了。 我們知道,服務(wù)號(hào)有獲取用戶基本信息的接口,通過(guò)oauth2.0網(wǎng)頁(yè)授權(quán)獲取的。但是認(rèn)證的訂閱號(hào)也有獲取用戶基本信息的接口了,但是與服務(wù)號(hào)不同的是,這個(gè)...
摘要:微信開(kāi)放平臺(tái)提供了網(wǎng)站掃碼登錄的接口,用于獲取用戶基本信息頭像,昵稱方便網(wǎng)站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開(kāi)放平臺(tái)認(rèn)證開(kāi)發(fā)者元才可以獲得這個(gè)接口權(quán)限。 微信開(kāi)放平臺(tái)提供了網(wǎng)站掃碼登錄的接口,用于獲取用戶基本信息(頭像,昵稱)方便網(wǎng)站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開(kāi)放平臺(tái)認(rèn)證開(kāi)發(fā)者(300元)才可以獲得這個(gè)接口權(quán)限。 準(zhǔn)備工作: 1...
摘要:分享頁(yè)面的實(shí)際鏈接當(dāng)前頁(yè)面的鏈接需要編碼公眾號(hào)的當(dāng)前頁(yè)面的鏈接,需要編碼其他值均不用改動(dòng)點(diǎn)擊允許后跳轉(zhuǎn)的鏈接是。此處的可以用來(lái)調(diào)取接口獲取微信用戶的相關(guān)信息每次用戶授權(quán)帶上的將不一樣,只能使用一次,分鐘未被使用自動(dòng)過(guò)期。 vue + 微信獲取用戶信息 本次項(xiàng)目做到一個(gè)點(diǎn)贊功能,即分享出去一個(gè)頁(yè)面給微信好友,微信好友點(diǎn)開(kāi)并點(diǎn)贊,需要將點(diǎn)贊用戶的微信昵稱,微信頭像以及微信openid,微信...
摘要:分享頁(yè)面的實(shí)際鏈接當(dāng)前頁(yè)面的鏈接需要編碼公眾號(hào)的當(dāng)前頁(yè)面的鏈接,需要編碼其他值均不用改動(dòng)點(diǎn)擊允許后跳轉(zhuǎn)的鏈接是。此處的可以用來(lái)調(diào)取接口獲取微信用戶的相關(guān)信息每次用戶授權(quán)帶上的將不一樣,只能使用一次,分鐘未被使用自動(dòng)過(guò)期。 vue + 微信獲取用戶信息 本次項(xiàng)目做到一個(gè)點(diǎn)贊功能,即分享出去一個(gè)頁(yè)面給微信好友,微信好友點(diǎn)開(kāi)并點(diǎn)贊,需要將點(diǎn)贊用戶的微信昵稱,微信頭像以及微信openid,微信...
閱讀 1323·2023-04-25 19:33
閱讀 1203·2021-10-21 09:39
閱讀 3689·2021-09-09 09:32
閱讀 2656·2019-08-30 10:58
閱讀 1677·2019-08-29 16:17
閱讀 905·2019-08-29 15:29
閱讀 2927·2019-08-26 11:55
閱讀 2689·2019-08-26 10:33