歡迎來到安信科技官方網站!【www.boomerlogic.com】
      18112005550
      工作時間: 8:30-21:30
      新聞中心
      News Center

      asp版本獲取微信Access Token的源代碼

      資訊分類: 移動微信  瀏覽: 2021年6月13日
      一.微信官方對于access_token的說明:
      access_token是公眾號的全局唯一接口調用憑據,公眾號調用各接口時都需使用access_token。開發者需要進行妥善保存。access_token的存儲至少要保留512個字符空間。access_token的有效期目前為2個小時,需定時刷新,重復獲取將導致上次獲取的access_token失效。
      
      公眾平臺的API調用所需的access_token的使用及生成方式說明:
      
      1、建議公眾號開發者使用中控服務器統一獲取和刷新access_token,其他業務邏輯服務器所使用的access_token均來自于該中控服務器,不應該各自去刷新,否則容易造成沖突,導致access_token覆蓋而影響業務;
      
      2、目前access_token的有效期通過返回的expire_in來傳達,目前是7200秒之內的值。中控服務器需要根據這個有效時間提前去刷新新access_token。在刷新過程中,中控服務器可對外繼續輸出的老access_token,此時公眾平臺后臺會保證在5分鐘內,新老access_token都可用,這保證了第三方業務的平滑過渡;
      
      3、access_token的有效時間可能會在未來有調整,所以中控服務器不僅需要內部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便于業務服務器在API調用獲知access_token已超時的情況下,可以觸發access_token的刷新流程。
      
      4、對于可能存在風險的調用,在開發者進行獲取 access_token調用時進入風險調用確認流程,需要用戶管理員確認后才可以成功獲取。具體流程為:
      
      開發者通過某IP發起調用->平臺返回錯誤碼[89503]并同時下發模板消息給公眾號管理員->公眾號管理員確認該IP可以調用->開發者使用該IP再次發起調用->調用成功。
      
      如公眾號管理員第一次拒絕該IP調用,用戶在1個小時內將無法使用該IP再次發起調用,如公眾號管理員多次拒絕該IP調用,該IP將可能長期無法發起調用。平臺建議開發者在發起調用前主動與管理員溝通確認調用需求,或請求管理員開啟IP白名單功能并將該IP加入IP白名單列表。
      
      公眾號和小程序均可以使用AppID和AppSecret調用本接口來獲取access_token。AppID和AppSecret可在“微信公眾平臺-開發-基本配置”頁中獲得(需要已經成為開發者,且帳號沒有異常狀態)。**調用接口時,請登錄“微信公眾平臺-開發-基本配置”提前將服務器IP地址添加到IP白名單中,點擊查看設置方法,否則將無法調用成功。**小程序無需配置IP白名單。
      
      接口調用請求說明
      
      https請求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
      
      參數說明
      
      參數 是否必須 說明
      grant_type  獲取access_token填寫client_credential
      appid  第三方用戶唯一憑證
      secret  第三方用戶唯一憑證密鑰,即appsecret
      返回說明
      
      正常情況下,微信會返回下述JSON數據包給公眾號:
      
      {"access_token":"ACCESS_TOKEN","expires_in":7200}
      參數說明
      
      參數 說明
      access_token 獲取到的憑證
      expires_in 憑證有效時間,單位:秒
      錯誤時微信會返回錯誤碼等信息,JSON數據包示例如下(該示例為AppID無效錯誤):
      
      {"errcode":40013,"errmsg":"invalid appid"}
      返回碼說明
      
      返回碼 說明
      -1 系統繁忙,此時請開發者稍候再試
      0 請求成功
      40001 AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發者確認AppSecret的正確性
      40002 請確保grant_type字段值為client_credential
      40164 調用接口的IP地址不在白名單中,請在接口IP白名單中進行設置。(小程序及小游戲調用不要求IP地址在白名單內。)
      89503 此IP調用需要管理員確認,請聯系管理員
      89501 此IP正在等待管理員確認,請聯系管理員
      89506 24小時內該IP被管理員拒絕調用兩次,24小時內不可再使用該IP調用
      89507 1小時內該IP被管理員拒絕調用一次,1小時內不可再使用該IP調用
      
      
      二.ASP代碼實現:
      
      
      
      
      Public Function Get_Access_Token()
      	sCode = Request("code")
      	If sCode ="" And Session("access_token")="" Then
      		Response.Redirect(GetAuthorization_Code)
      	Else
      		If DateDiff("s",Now,Session("access_token_expires"))> 0 Then
      			Exit Function
      		End If
      	End If
      
      	Dim url, params,Temp
      	Url="https://api.weixin.qq.com/sns/oauth2/access_token?"
      	params = "appid="&s_APPID
      	params = params & "&secret=" & s_APPSECRET
      	params = params & "&code=" & sCode
      	params = params & "&grant_type=authorization_code"
      	url = Url & params
      	Temp=RequestUrl(url,"GET","")
      	'Die Temp
      
      	If CheckData(Temp,"access_token") = True Then
      		set obj = getjson(Temp)
      		if isobject(obj) Then
      			Session("access_token") = obj.access_token
      			Session("access_token_expires") = DateAdd("s",obj.expires_in,Now)
      			Session("openid") = obj.openid
      		End If
      		set obj = Nothing
      	Else
      		Response.Write("Get_Access_Token()=>"&Temp) 
      		Response.End()
      	End If
      End Function
      Copyright © 2007-2024 安信科技(十五周年紀念版) All Rights Reserved  備案號:蘇ICP備15047094號-3 
      網站首頁 |  新聞資訊 |  服務項目 |  軟件產品 |  試用下載 |  需求提交 |  模版建站 |  關于安信 |  產品授權 |  聯系我們 |  定制開發 | 
      服務熱線:181-1200-5550  客服QQ: 120094883  | 郵箱:120094883#qq.com(#改@)