dim AppPath = HttpContext.Current.Server.MapPath("/")
Dim AppID As String = "wx73e2be0902*******", AppSecret As String = "c930d3e228c09911603487******", Path As String = AppPath & "\DataBase\Cache.txt", token As String = "", ticket As String = "", timestamp As String = Now.Ticks.ToString.PadRight(14) '时间戳
Try
Dim RStr As String = IO.File.ReadAllText(Path, GetEncoding("utf-8")), RObj As Object = JsonConvert.DeserializeObject(RStr)
If RObj("token") IsNot Nothing Then
Dim Ticks As TimeSpan = Now.Subtract(New DateTime(RObj("Ticks"))).Duration
If Ticks.TotalSeconds < Val(RObj("expires_in")) - 60 Then token = RObj("token").ToString : ticket = RObj("ticket").ToString
End If
Catch ex As Exception
End Try
If token = "" Then
token = GetURL("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" & AppID & "&secret=" & AppSecret)
Dim tokenObj As Object = JsonConvert.DeserializeObject(token)
If tokenObj("access_token") Is Nothing Then .Write("获取access_token失败") : .End()
token = tokenObj("access_token").ToString
ticket = GetURL("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" & token & "&type=jsapi")
Dim ticketObj As Object = JsonConvert.DeserializeObject(ticket)
If ticketObj("ticket") Is Nothing Then .Write("获取ticket失败") : .End()
ticket = ticketObj("ticket").ToString
IO.File.WriteAllText(Path, "{""Ticks"":""" & Now.Ticks & """,""token"":""" & token & """,""ticket"":""" & ticket & """,""expires_in"":" & ticketObj("expires_in").ToString & "}", GetEncoding("utf-8")) '缓存起来
End If
Dim signPars As String = "jsapi_ticket=" & ticket & "&noncestr=" & timestamp & "×tamp=" & timestamp & "&url=http://129.28.88.226/", signature As String = Md5(signPars, "sha1Sign")
.Write("{""appid"":""" & AppID & """,""jsapi_ticket"":""" & ticket & """,""noncestr"":""" & timestamp & """,""timestamp"":""" & timestamp & """,""outstring"":""" & signPars & """,""signature"":""" & signature.ToLower & """}")