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

求一份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条回答

  • Go 旅城通票 2018-07-31 06:17
    关注

    AddCache怎么写的。。而且你的CacheExists写的怪怪的,应该命名为CacheNotExists还好理解点。。里面的逻辑也要改下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛