微信獲取多次取得全域的access_token衝突導致無效? (算是解決)
token預設是7200秒過期,如果有第二地方也要求同一個token的話,那麼第一個token會在5分鐘內過期。也就是說我第二次請求的時候如果時間過短會引起衝突。
剛學習微信開發,程式碼寫的不是很完美。只過了是否大於7200生存期的判斷,看到有人說可以判斷每分鐘讀取,不知道各位大大對我的代碼有什麼優化建議?謝謝
<code>function getWxAccessToken(){ if ( $_SESSION['access_token'] && $_SESSION['expire_time'] > time() ) { //未过期 return $_SESSION['access_token']; }else { $appid = "wx3bbf9ae731a6eb07"; $appsecret = "2b14a75fa48825ef3c76c8949b5e030f"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $res =$this->https_request($url,'get','json'); $access_token = $res["access_token"]; //将重新获取到的access_token存到session里 $_SESSION['access_token']=$access_token; $_SESSION['expire_time']=time()+7200; return $access_token; } } </code>
起衝突的是同一個控制器下的一個方法,每次呼叫都是用
<code> $access_token=$this->getWxAccessToken(); </code>
報錯資訊如下
<code>array(2) { ["errcode"] => int(40001) ["errmsg"] => string(81) "invalid credential, access_token is invalid or not latest hint: [pd4MfA0688vr40!]" } </code>
看到官方說的
0.0官方的意思就是不要用業務邏輯點去刷新token,我這麼寫好像就是屬於用業務邏輯刷新,用第三方中控什麼意思呢
把方法的絕對路徑放在二維碼產生器裡,掃描。這樣調試的結果比瀏覽器直接存取正確點感覺。
多數情況下,瀏覽器開啟如果報40001,基本上程式是沒問題的
回覆內容:
token預設是7200秒過期,如果有第二地方也要求同一個token的話,那麼第一個token會在5分鐘內過期。也就是說我第二次請求的時候如果時間過短會引起衝突。
剛學習微信開發,程式碼寫的不是很完美。只過了是否大於7200生存期的判斷,看到有人說可以判斷每分鐘讀取,不知道各位大大對我的代碼有什麼優化建議?謝謝
<code>function getWxAccessToken(){ if ( $_SESSION['access_token'] && $_SESSION['expire_time'] > time() ) { //未过期 return $_SESSION['access_token']; }else { $appid = "wx3bbf9ae731a6eb07"; $appsecret = "2b14a75fa48825ef3c76c8949b5e030f"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $res =$this->https_request($url,'get','json'); $access_token = $res["access_token"]; //将重新获取到的access_token存到session里 $_SESSION['access_token']=$access_token; $_SESSION['expire_time']=time()+7200; return $access_token; } } </code>
起衝突的是同一個控制器下的一個方法,每次呼叫都是用
<code> $access_token=$this->getWxAccessToken(); </code>
報錯資訊如下
<code>array(2) { ["errcode"] => int(40001) ["errmsg"] => string(81) "invalid credential, access_token is invalid or not latest hint: [pd4MfA0688vr40!]" } </code>
看到官方說的
0.0官方的意思就是不要用業務邏輯點去刷新token,我這麼寫好像就是屬於用業務邏輯刷新,用第三方中控什麼意思呢
把方法的絕對路徑放在二維碼產生器裡,掃描。這樣調試的結果比瀏覽器直接存取正確點感覺。
多數情況下,瀏覽器開啟如果報40001,基本上程式是沒問題的
建議將access_token儲存到資料庫,這樣各處業務都使用同一個token,這樣就不會發生每個業務邏輯點各自請求access_token的情況了;
官方文檔的意思是如果業務邏輯在多台伺服器上,由於access_token和expire_time儲存在session中,伺服器之間不會共用session,就會導致每台伺服器上的業務都會發起請求,如果其中一台伺服器上的access_token尚未逾時,而另一台伺服器重新請求了access_token ,使得第一台伺服器上的access_token失效,繼而使用過期的access_token去請求服務,導致服務不穩定
使用中控伺服器儲存access_token,這樣統一服務,不會發生業務之間的衝突,保證了資料的一致性
access_token對所有的呼叫是通用的,沒必要放session,每個人的session又不一樣,一般放緩存裡面,要不然你就放資料庫就好了。
每次用到的時候都去資料庫裡面差有效期限內的話,直接用,失效的話重新獲取,再插入資料庫。
session是基於使用者的,你這樣每個使用者一次就刷一次了。
建議放到快取或資料庫,定期刷新。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
