摘要:配置開始微信公眾平臺開發基本配置微信公眾平臺開發基本配置配置結束獲取用戶獲取獲取失敗獲取用戶信息微信獲取用戶信息你的基本信息如下昵稱頭像性別男性女性未知省份城市微信支付申請對應的公眾號的微信支付申請對
開發->基本配置->AppID $appKey = ""; //微信公眾平臺->開發->基本配置->AppSecret /* 配置結束 */ //①、獲取用戶openid $wxPay = new WxService($appid,$appKey); $data = $wxPay->GetOpenid(); //獲取openid if(!$data["openid"]) exit("獲取openid失敗"); //②、獲取用戶信息 $user = $wxPay->getUserInfo($data["openid"],$data["access_token"]); ?>微信獲取用戶信息demo appid = $appid; //微信支付申請對應的公眾號的APPID $this->appKey = $appKey; //微信支付申請對應的公眾號的APP Key } /** * 通過跳轉獲取用戶的openid,跳轉流程如下: * 1、設置自己需要調回的url及其其他參數,跳轉到微信服務器https://open.weixin.qq.com/connect/oauth2/authorize * 2、微信服務處理完成之后會跳轉回用戶redirect_uri地址,此時會帶上一些參數,如:code * * @return 用戶的openid */ public function GetOpenid() { //通過code獲得openid if (!isset($_GET["code"])){ //觸發微信返回code碼 $baseUrl = $this->getCurrentUrl(); $url = $this->__CreateOauthUrlForCode($baseUrl); Header("Location: $url"); exit(); } else { //獲取code碼,以獲取openid $code = $_GET["code"]; $openid = $this->getOpenidFromMp($code); return $openid; } } public function getCurrentUrl() { $scheme = $_SERVER["HTTPS"]=="on" ? "https://" : "http://"; $uri = $_SERVER["PHP_SELF"].$_SERVER["QUERY_STRING"]; if($_SERVER["REQUEST_URI"]) $uri = $_SERVER["REQUEST_URI"]; $baseUrl = urlencode($scheme.$_SERVER["HTTP_HOST"].$uri); return $baseUrl; } /** * 通過code從工作平臺獲取openid機器access_token * @param string $code 微信跳轉回來帶上的code * @return openid */ public function GetOpenidFromMp($code) { $url = $this->__CreateOauthUrlForOpenid($code); $res = self::curlGet($url); $data = json_decode($res,true); $this->data = $data; return $data; } /** * 構造獲取open和access_toke的url地址 * @param string $code,微信跳轉帶回的code * @return 請求的url */ private function __CreateOauthUrlForOpenid($code) { $urlObj["appid"] = $this->appid; $urlObj["secret"] = $this->appKey; $urlObj["code"] = $code; $urlObj["grant_type"] = "authorization_code"; $bizString = $this->ToUrlParams($urlObj); return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString; } /** * 構造獲取code的url連接 * @param string $redirectUrl 微信服務器回跳的url,需要url編碼 * @return 返回構造好的url */ private function __CreateOauthUrlForCode($redirectUrl) { $urlObj["appid"] = $this->appid; $urlObj["redirect_uri"] = "$redirectUrl"; $urlObj["response_type"] = "code"; $urlObj["scope"] = "snsapi_userinfo"; $urlObj["state"] = "STATE"; $bizString = $this->ToUrlParams($urlObj); return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString; } /** * 拼接簽名字符串 * @param array $urlObj * @return 返回已經拼接好的字符串 */ private function ToUrlParams($urlObj) { $buff = ""; foreach ($urlObj as $k => $v) { if($k != "sign") $buff .= $k . "=" . $v . "&"; } $buff = trim($buff, "&"); return $buff; } /** * 獲取用戶信息 * @param string $openid 調用【網頁授權獲取用戶信息】接口獲取到用戶在該公眾號下的Openid * @return string */ public function getUserInfo($openid,$access_token) { $response = self::curlGet("https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN"); return json_decode($response,true); } public static function curlGet($url = "", $options = array()) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); if (!empty($options)) { curl_setopt_array($ch, $options); } //https請求 不驗證證書和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } public static function curlPost($url = "", $postData = "", $options = array()) { if (is_array($postData)) { $postData = http_build_query($postData); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置cURL允許執行的最長秒數 if (!empty($options)) { curl_setopt_array($ch, $options); } //https請求 不驗證證書和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } }你的基本信息如下:
openid =$user["openid"]?> unionid =$user["unionid"]?> 昵稱 =$user["nickname"]?> 頭像 " style="width: 100px;" alt=""> 性別 省份 / 城市 =$user["province"]." / ".$user["city"]?> language =$user["language"]?>
DEMO:
http://likeyunba.com
TANKING
2019-1-21
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30017.html
摘要:做一款小程序,如果需要判斷用戶,當然要獲取一些基本信息,例如頭像,昵稱,。所以本次案例就直接上代碼了。 做一款小程序,如果需要判斷用戶,當然要獲取一些基本信息,例如頭像,昵稱,openid。所以本次案例就直接上代碼了。 小程序前端 index.wxml 獲取頭像昵稱 {{userInfo.nickName}} ...
摘要:現在的網站基本都接入微信登陸了,就好像下面這樣的。只需要用微信掃一下二維碼,這個網站就可以展示你的微信昵稱和頭像,免去注冊賬號和輸入密碼登錄的步驟,還免去設置頭像和昵稱的步驟,所以是挺方便的。 現在的網站基本都接入微信登陸了,就好像下面這樣的。 showImg(https://segmentfault.com/img/bVbc4jV?w=523&h=508); 只需要用微信掃一下二維碼...
摘要:最近在做公司的微信接入部分。經過幾天痛苦的看文檔和代碼,整理一下接入流程,大致相當于微信官方文檔的擴展版本。微信登錄接入分為兩種,一種是只需要用戶,另一種是需要用戶昵稱和頭像等亂七八糟的另一些信息。 最近在做公司的微信接入部分。目前接入部分代碼已經由別人寫好,但是還有很多問題。經過幾天痛苦的看文檔和代碼,整理一下接入流程,大致相當于微信官方文檔的擴展版本。附上官網文檔鏈接。 微信登錄接...
摘要:我們知道,服務號有獲取用戶基本信息的接口,通過網頁授權獲取的。但是認證的訂閱號也有獲取用戶基本信息的接口了,但是與服務號不同的是,這個需要用戶主動觸發才可以獲得,需要用戶發送任意關鍵詞或者點擊菜單。那么最后一步,就是獲取用戶基本信息了。 我們知道,服務號有獲取用戶基本信息的接口,通過oauth2.0網頁授權獲取的。但是認證的訂閱號也有獲取用戶基本信息的接口了,但是與服務號不同的是,這個...
摘要:微信開放平臺提供了網站掃碼登錄的接口,用于獲取用戶基本信息頭像,昵稱方便網站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開放平臺認證開發者元才可以獲得這個接口權限。 微信開放平臺提供了網站掃碼登錄的接口,用于獲取用戶基本信息(頭像,昵稱)方便網站快速接入微信登錄,快捷登錄。需要使用登錄接口,需要成為微信開放平臺認證開發者(300元)才可以獲得這個接口權限。 準備工作: 1...
閱讀 958·2022-06-21 15:13
閱讀 1848·2021-10-20 13:48
閱讀 1029·2021-09-22 15:47
閱讀 1365·2019-08-30 15:55
閱讀 3113·2019-08-30 15:53
閱讀 520·2019-08-29 12:33
閱讀 712·2019-08-28 18:15
閱讀 3458·2019-08-26 13:58