微信鉴权接口调用例子vb.net源码

微信鉴权及access_token获取实现
博客展示了微信鉴权及获取access_token和ticket的代码实现。先尝试从缓存读取token和ticket,若未过期则使用;若过期或无缓存,则通过微信API重新获取,并将新结果缓存。最后生成签名并输出相关信息。

          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 & "&timestamp=" & 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 & """}")
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值