微信公眾平台實現擷取使用者OpenID的方法_PHP

來源:互聯網
上載者:User
關鍵字 微信公眾平台 擷取 使用者OpenID
本文執行個體講述了公眾平台實現擷取使用者OpenID的方法。分享給大家供大家參考。具體分析如下:

使用者點擊自訂菜單view類型按鈕後,用戶端將會開啟開發人員在按鈕中填寫的url值 (即網頁連結),達到開啟網頁的目的,但是view不能擷取使用者的openid,需要使用“網頁授權擷取使用者基本資料”進階介面結合使用,獲得使用者的登入個人資訊。

具體方法:

1、配置網頁授權回調網域名稱,如 www.bitsCN.com

2、類比公眾號的第三方網頁,http://www.bitsCN.com/getcodeurl.php

<?php if(isset($_SESSION['user'])){  print_r($_SESSION['user']);exit;}$APPID='公眾號在的appid';$REDIRECT_URI='http://www.bitsCN.com/callback.php';$scope='snsapi_base';//$scope='snsapi_userinfo';//需要授權$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect';header("Location:".$url);?>

3、第三方網頁的回跳url中,首先從請求中取得code,然後根據code進一步換取openid和access_token,然後就可以根據openid和access_token調用的相關介面查詢使用者資訊了。

<?php//http://www.bitsCN.com/callback.php$appid = "公眾號在的appid"; $secret = "公眾號在的app secret"; $code = $_GET["code"]; $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$get_token_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $json_obj = json_decode($res,true); //根據openid和access_token查詢使用者資訊 $access_token = $json_obj['access_token']; $openid = $json_obj['openid']; $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_user_info_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); //解析json $user_obj = json_decode($res,true); $_SESSION['user'] = $user_obj; print_r($user_obj); ?>

希望本文所述對大家基於php的公眾平台開發有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.