家里有个兔崽子 2018-07-31 05:08 采纳率: 50%
浏览 1018
已采纳

求一份ASP版的微信分享JSSDK源码,要求access_token有缓存时间

目前代码无法通过缓存获取accesstoken,访问量剧增,accesstoken只有2000,不够用
附上关键代码部分,大家帮忙分析下

    Private Function CacheExists(ByVal vNewName) 
dim ObjExists
        CacheExists=True
        Dim CacheData : CacheData=Application(flag_ &"_"& LCase(vNewName)) 
        If Not IsArray(CacheData) Then Exit Function 
        If Not IsDate(CacheData(1)) Then Exit Function 
        If DateDiff("s",CDate(CacheData(1)),Now()) < 7000  Then 
            CacheExists=False '修改ObjExists为CacheExists
        End If 
    End Function 
    private function getJsApiTicket()
        'jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
        if CacheExists("JsApiTicket") then
            Dim accessToken : accessToken = getAccessToken()
            if accessToken<>"" then
                ' $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken"; 如果是企业号用以下 URL 获取 ticket
                Dim strJson : strJson=GetHttpURL("https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token="& accessToken)
                Dim objRe : Set objRe = getJSONObject(strJson)
                if objRe.errmsg<>"ok" then
                    'call InErr("获取JsApiTicket失败:"& strJson)
                    'response.End()
                    getJsApiTicket=strJson
                else
                    Dim JsApiTicket_ : JsApiTicket_= objRe.ticket
                    Set objRe=nothing
                    Call AddCache("JsApiTicket", JsApiTicket_)

                    getJsApiTicket = JsApiTicket_

                end if
            else
                getJsApiTicket=""
            end if  
        else
            getJsApiTicket = GetCache("JsApiTicket")
        end if
    end function
        private function getAccessToken() 
        'access_token 应该全局存储与更新
        'response.write "getAccessToken"  '输出是否获取access
        if CacheExists("AccessToken") then
            '$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret"; 如果是企业号用以下URL获取access_token
            Dim strJson : strJson=GetHttpURL("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="& APPID_ &"&secret="& appSecret_)
            Dim objRe : Set objRe = getJSONObject(strJson)
            if InStr(strJson,"errcode")>0 then
                getAccessToken =strJson
                'call InErr("获取AccessToken失败:"& strJson)
                'response.End()
            else
                Dim AccessToken_ : AccessToken_= objRe.access_token
                Set objRe=nothing
                Call AddCache("AccessToken", AccessToken_)

                getAccessToken = AccessToken_

            end if
        else
            getAccessToken = GetCache("AccessToken")
        end if
    end function
  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥25 接口/特征方法的异常错误返回如何判断是否需要设计
      • ¥40 代码+预测分析,文件私信发哦(价格可商量)
      • ¥15 GAMES101 HW1 无法定义
      • ¥15 pycharm不管允许什么代码都出错,都会出现下面的情况。
      • ¥15 boost::integrate的用法
      • ¥20 51单片机输出pwm时无法调节频率,如何解决?
      • ¥15 DSP28335 AD采集正弦波
      • ¥50 pwwinauto调式修改
      • ¥30 关于#单片机#的问题:单片机基于51单片机开发计时器,使其实现以下功能:(1)开发板上四个独立按键分别控制计时器的启停、计时器的复位(按下计时值归零)、计时位切换、计时时间的递增
      • ¥15 看个代码。做个详细的解说