摘要:重新整理做過的功能,以及過程遇到問題,溫故而知新官方文檔一準備工作接入配置修改添加業務域名網頁授權域名授權回調域名不加協議頭綁定時微信要求將文件上傳根目錄,需要將文件添加到我項目許可中確保文件可被訪問,否則綁定不通過公眾平臺參數二授權登錄簡
重新整理做過的功能,以及過程遇到問題,溫故而知新一 準備工作 (a.接入 b.配置)
官方文檔
a) 修改/添加 業務域名、網頁授權域名; 授權回調域名 不加 http:// 協議頭
綁定時微信要求將 *.txt文件上傳根目錄,需要將文件 添加到我項目.htaccess許可中 確保文件可被訪問,否則綁定不通過
b) 公眾平臺 參數
appid
secret
簡單畫一個流程圖
網上很多人說微信瀏覽器 session 失效的問題,我測試并不存在; 不太懂為什么session會失效;暫時get不到
忽略了refresh_token 刷新access_token步驟
ci框架
function __construct() { parent::__construct(); $this->load->library("session"); } public function index() { if (!isset($_SESSION["wx_user_data"])) { // 1. 獲取緩存token: 如果token過期則通過 refresh_token獲取,都過期或首次請求則獲取code $code = $this->input->get("code"); if (!$code) { //獲取現有token $access_token = $this->get_wx_access_token(); } // 2. get access token $this->load->library("mycurl"); $wx_get_token = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".WX_APP_ID."&secret=".WX_SECRET."&code=".$code."&grant_type=authorization_code"; list($returnCode, $returnContent) = $this->mycurl->curl_post_json_to_java($wx_get_token); $returnContent = json_decode($returnContent, true); if ($returnCode ===200 && !isset($returnContent["access_token"])) { die("error-page-todo-later".$returnContent["errcode"]); } $access_token = $returnContent["access_token"]; $refresh_token = $returnContent["refresh_token"]; $expires_date = time()+7100; $openid = $returnContent["openid"]; // 3. 刷新 access token // 4. 拉取用戶信息 $wx_get_userinfo = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN"; list($returnCode, $returnContent) = $this->mycurl->curl_post_json_to_java($wx_get_userinfo); $returnContent = json_decode($returnContent, true); if ($returnCode ===200 && isset($returnContent["errcode"])) { die("error-page-todo-later".$returnContent["errcode"]); } $userData = array(); $userData["openid"] = $returnContent["openid"]; $userData["unionid"] = $returnContent["unionid"]; $userData["nickname"] = $returnContent["nickname"]; $userData["sex"] = $returnContent["sex"]; $userData["province"] = $returnContent["province"]; $userData["city"] = $returnContent["city"]; $userData["country"] = $returnContent["country"]; $userData["headimgurl"] = $returnContent["headimgurl"]; $userData["privilege"] = $returnContent["privilege"]; // 5. session 存儲userData 緩存做不到每次從入口進來實時刷新用戶信息 $this->session->set_userdata("wx_user_data", $userData); } // 6. 項目主邏輯 $templateData["userData"] = $_SESSION["wx_user_data"]; $this->load->view("union_m/index.html", $templateData); } /** * 跳轉至授權頁面,公眾號入口 scope user-info 同樣靜默 * @return [type] [description] */ public function redirect_wx_url() { $wx_get_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WX_APP_ID."&redirect_uri=".urlencode(UNION_INDEX)."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; $this->load->helper("url"); redirect($wx_get_code); } // access token 維護 public function get_wx_access_token() { // 1. 是否有未過期 token 直接return // 2. 是否有未過期 refresh_token 則獲取 token, 刷新access_token (忽略) // 3. 都不存在 首次授權 或 全部過期的情況 跳轉授權頁面 $this->redirect_wx_url(); }
結合項目最后實現地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30767.html
摘要:本文是淺析微信支付系列文章的第三篇,主要會講一下在開發前的一些注意事項。淺析微信支付系列已經更新兩篇了喲,沒有看過的朋友們可以看一下。開通微信支付需要注冊登陸微信商戶平臺,微信支付相關的信息都需要在這個平臺上進行操作。 本文是【淺析微信支付】系列文章的第三篇,主要會講一下在開發前的一些注意事項。 淺析微信支付系列已經更新兩篇了喲~,沒有看過的朋友們可以看一下。 淺析微信支付:前篇大綱...
摘要:淺析微信支付微信公眾號網頁授權本文是淺析微信支付系列文章的第四篇,主要講解微信支付前如何獲取獲取網頁授權及用戶信息獲取。淺析微信支付系列已經更新三篇了喲,沒有看過的朋友們可以看一下哦。 淺析微信支付:微信公眾號網頁授權 本文是【淺析微信支付】系列文章的第四篇,主要講解微信支付前如何獲取獲取網頁授權及用戶信息獲取。 淺析微信支付系列已經更新三篇了喲~,沒有看過的朋友們可以看一下哦。 淺...
摘要:小程序登錄微信網頁授權版首先呢,登錄授權授權登錄,是一樣的意思,不用糾結。寫小程序授權登錄的代碼前,需要了解清楚與的區別,這里再簡單介紹一下騰訊有個微信開放平臺,只有企業才能注冊賬號,可理解為微信體系里,最頂級的賬號。 小程序登錄、微信網頁授權(Java版) 首先呢,登錄、授權、授權登錄,是一樣的意思,不用糾結。 寫小程序授權登錄的代碼前,需要了解清楚openid與unionid的區別...
摘要:在實際開發中,無論是做端端還是微信公眾號等類型的項目的時候,或多或少都會涉及到微信相關的開發,最近公司項目要求實現微信網頁授權,并獲取微信用戶基本信息的功能及微信分享的功能,現在總算完成了,但開發過程中遇到好幾個坑。 在實際開發中,無論是做PC端、WebApp端還是微信公眾號等類型的項目的時候,或多或少都會涉及到微信相關的開發,最近公司項目要求實現微信網頁授權,并獲取微信用戶基本信息的...
摘要:在實際開發中,無論是做端端還是微信公眾號等類型的項目的時候,或多或少都會涉及到微信相關的開發,最近公司項目要求實現微信網頁授權,并獲取微信用戶基本信息的功能及微信分享的功能,現在總算完成了,但開發過程中遇到好幾個坑。 在實際開發中,無論是做PC端、WebApp端還是微信公眾號等類型的項目的時候,或多或少都會涉及到微信相關的開發,最近公司項目要求實現微信網頁授權,并獲取微信用戶基本信息的...
閱讀 1527·2021-11-25 09:43
閱讀 4070·2021-11-15 11:37
閱讀 3201·2021-08-17 10:13
閱讀 3509·2019-08-30 14:16
閱讀 3540·2019-08-26 18:37
閱讀 2499·2019-08-26 11:56
閱讀 1139·2019-08-26 10:42
閱讀 617·2019-08-26 10:39