摘要:重新整理做過的功能,以及過程遇到問題,溫故而知新官方文檔一準(zhǔn)備工作接入配置修改添加業(yè)務(wù)域名網(wǎng)頁授權(quán)域名授權(quán)回調(diào)域名不加協(xié)議頭綁定時(shí)微信要求將文件上傳根目錄,需要將文件添加到我項(xiàng)目許可中確保文件可被訪問,否則綁定不通過公眾平臺(tái)參數(shù)二授權(quán)登錄簡(jiǎn)
重新整理做過的功能,以及過程遇到問題,溫故而知新一 準(zhǔn)備工作 (a.接入 b.配置)
官方文檔
a) 修改/添加 業(yè)務(wù)域名、網(wǎng)頁授權(quán)域名; 授權(quán)回調(diào)域名 不加 http:// 協(xié)議頭
綁定時(shí)微信要求將 *.txt文件上傳根目錄,需要將文件 添加到我項(xiàng)目.htaccess許可中 確保文件可被訪問,否則綁定不通過
b) 公眾平臺(tái) 參數(shù)
appid
secret
簡(jiǎn)單畫一個(gè)流程圖
網(wǎng)上很多人說微信瀏覽器 session 失效的問題,我測(cè)試并不存在; 不太懂為什么session會(huì)失效;暫時(shí)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獲取,都過期或首次請(qǐng)求則獲取code $code = $this->input->get("code"); if (!$code) { //獲取現(xiàn)有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 存儲(chǔ)userData 緩存做不到每次從入口進(jìn)來實(shí)時(shí)刷新用戶信息 $this->session->set_userdata("wx_user_data", $userData); } // 6. 項(xiàng)目主邏輯 $templateData["userData"] = $_SESSION["wx_user_data"]; $this->load->view("union_m/index.html", $templateData); } /** * 跳轉(zhuǎn)至授權(quán)頁面,公眾號(hào)入口 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 維護(hù) public function get_wx_access_token() { // 1. 是否有未過期 token 直接return // 2. 是否有未過期 refresh_token 則獲取 token, 刷新access_token (忽略) // 3. 都不存在 首次授權(quán) 或 全部過期的情況 跳轉(zhuǎn)授權(quán)頁面 $this->redirect_wx_url(); }
結(jié)合項(xiàng)目最后實(shí)現(xiàn)地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30767.html
摘要:本文是淺析微信支付系列文章的第三篇,主要會(huì)講一下在開發(fā)前的一些注意事項(xiàng)。淺析微信支付系列已經(jīng)更新兩篇了喲,沒有看過的朋友們可以看一下。開通微信支付需要注冊(cè)登陸微信商戶平臺(tái),微信支付相關(guān)的信息都需要在這個(gè)平臺(tái)上進(jìn)行操作。 本文是【淺析微信支付】系列文章的第三篇,主要會(huì)講一下在開發(fā)前的一些注意事項(xiàng)。 淺析微信支付系列已經(jīng)更新兩篇了喲~,沒有看過的朋友們可以看一下。 淺析微信支付:前篇大綱...
摘要:淺析微信支付微信公眾號(hào)網(wǎng)頁授權(quán)本文是淺析微信支付系列文章的第四篇,主要講解微信支付前如何獲取獲取網(wǎng)頁授權(quán)及用戶信息獲取。淺析微信支付系列已經(jīng)更新三篇了喲,沒有看過的朋友們可以看一下哦。 淺析微信支付:微信公眾號(hào)網(wǎng)頁授權(quán) 本文是【淺析微信支付】系列文章的第四篇,主要講解微信支付前如何獲取獲取網(wǎng)頁授權(quán)及用戶信息獲取。 淺析微信支付系列已經(jīng)更新三篇了喲~,沒有看過的朋友們可以看一下哦。 淺...
摘要:小程序登錄微信網(wǎng)頁授權(quán)版首先呢,登錄授權(quán)授權(quán)登錄,是一樣的意思,不用糾結(jié)。寫小程序授權(quán)登錄的代碼前,需要了解清楚與的區(qū)別,這里再簡(jiǎn)單介紹一下騰訊有個(gè)微信開放平臺(tái),只有企業(yè)才能注冊(cè)賬號(hào),可理解為微信體系里,最頂級(jí)的賬號(hào)。 小程序登錄、微信網(wǎng)頁授權(quán)(Java版) 首先呢,登錄、授權(quán)、授權(quán)登錄,是一樣的意思,不用糾結(jié)。 寫小程序授權(quán)登錄的代碼前,需要了解清楚openid與unionid的區(qū)別...
摘要:在實(shí)際開發(fā)中,無論是做端端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁授權(quán),并獲取微信用戶基本信息的功能及微信分享的功能,現(xiàn)在總算完成了,但開發(fā)過程中遇到好幾個(gè)坑。 在實(shí)際開發(fā)中,無論是做PC端、WebApp端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁授權(quán),并獲取微信用戶基本信息的...
摘要:在實(shí)際開發(fā)中,無論是做端端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁授權(quán),并獲取微信用戶基本信息的功能及微信分享的功能,現(xiàn)在總算完成了,但開發(fā)過程中遇到好幾個(gè)坑。 在實(shí)際開發(fā)中,無論是做PC端、WebApp端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁授權(quán),并獲取微信用戶基本信息的...
閱讀 1507·2021-11-25 09:43
閱讀 4057·2021-11-15 11:37
閱讀 3192·2021-08-17 10:13
閱讀 3503·2019-08-30 14:16
閱讀 3535·2019-08-26 18:37
閱讀 2489·2019-08-26 11:56
閱讀 1128·2019-08-26 10:42
閱讀 609·2019-08-26 10:39