《C#微信支付类别(3)-获取接口调用凭据》

3.0收获接口调用凭据

 

①接口表明

 

access_token是宝沃号的全局唯一票据,公众号调用各接口时都需采用access_token。开发者需要实行妥善保存。access_token的仓储至少要保存512个字符空间。access_token的有效期近期为2h(7200s),需定时刷新,重复获取将造成上次获取的access_token失效。

万众平台的API调用所需的access_token的使用及变化模式注解:

1、为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其它作业逻辑服务器所采纳的access_token均出自于该中控服务器,不应当分别去刷新,否则会导致access_token覆盖而影响工作;

2、目前access_token的有效期通过再次来到的expire_in来传达,目前是7200秒之内的值。中控服务器需要基于这多少个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外出口的依旧是老access_token,此时群众平台后台会确保在刷新长时间内,新老access_token都可用,这保证了第三方工作的平整对接;

3、access_token的卓有效率时间可能会在未来有调整,所以中控服务器不仅需要中间定时主动刷新,还亟需提供被动刷新access_token的接口,这样方便工作服务器在API调用获知access_token已超时的图景下,可以触发access_token的刷新流程。

 怎么获取AppID和AppSecret!?

公众号能够使用AppID和AppSecret调用本接口来取得access_token。AppID和AppSecret可在微信公众平台官网-开发者中央页中获取。(需要已经化为开发者,且帐号没有充裕状态)

注意:在调用所有微信接口时均运用https协议;还有就是一旦第三方不拔取中控服务器,而是使采用各样业务逻辑点各自去刷新access_taken,那么就有可能会生出顶牛,导致服务不稳定。

 

②请求接口

 

接口调用请求表明:

http请求模式:GET

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

接口参数配置:

图片 1

 

实际落实代码如下:

 1 /// <summary>
 2 /// 获取公众号的ACCESS_TOKEN
 3 /// </summary>
 4 /// <returns>返回操作凭据</returns>
 5 public string GetAccessToken()
 6 {
 7   if (HttpContext.Current.Cache["access_token"] == null)
 8    {
 9      string para = string.Format("grant_type=client_credential&appid={0}&secret={1}", AppID, AppSecret);
10      string results = SendHTTPRequest("POST", "https://api.weixin.qq.com/cgi-bin/token", para);
11      JObject obj = (JObject)JsonConvert.DeserializeObject(results);
12 
13      //*******************************设置access_token的过期机制**************************
14 
15      Cache cache = HttpContext.Current.Cache;
16      cache.Insert("access_token", obj["access_token"].ToString(), null, DateTime.Now.AddSeconds(7000),
      System.Web.Caching.Cache.NoSlidingExpiration);
17 
18      //******************************************end*************************************
19      return HttpContext.Current.Cache["access_token"].ToString();
20    }
21    else
22    {
23      return HttpContext.Current.Cache["access_token"].ToString();
24    }
25 }

归来参数表明:

图片 2

 

回去表明:

正常情状下,微信会再次回到下述JSON数据包给公众号:

{“access_token”:”ACCESS_TOKEN”,”expires_in”:7200}

 

谬误时微信会再次回到错误码音讯,JSON数据包实示例如下(该示例为AppID无效错误):

{“errcode”:40013,”errmsg”:”invalid appid”}

注意:使用access_token的时候要小心此接口是有调用频率限制的,当跨越了天天最大的调用频率微信服务器就会对脚下公众号做接口限制,具体详情请阅读官方文档(微信公众号接口频率限制表达

 


只要您对《C#微信支付体系》那些系列感兴趣的话,可以关心自我的此外作品(持续改进中…),类别小说地址如下:

《C#微信支付系列(Top)-微信开发全部学习路线》

《C#微信支付体系(4)-接收 /
重临文本音信》

《C#微信支付体系(3)-获取接口调用凭据》

《C#微信支付体系(2)-自定义菜单管理》

《C#微信支付体系(1)-启用开发者形式》


相关文章