菜的像徐坤
排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

微信公众号配置服务器

4271人阅读 2021/5/11 17:23 总访问:960907 评论:0 收藏:0 手机
分类: .net

连接服务器基本配置

URL :服务器地址

Token : 验证请求是否是从微信发出(GET请求)4个参数,前台发送到后台的echostr,与后台返回的echostr一致,则认证成功

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串


EncodingAESKey :秘钥随机生成标识


关于access_token 

公众号调用各接口时都需使用access_tokenaccess_token的有效期目前为2个小时,需定时刷新,
重复获取将导致上次获取的access_token失效(每天上限2000次,频繁获取access_token可能会被限制

正常情况下,微信会返回下述JSON数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数说明
access_token获取到的凭证
expires_in凭证有效时间,单位:秒

接口调用请求说明

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

appid与secret需要替换成自己的

获取access_token 方法

DTO层

  1. namespace DTO
  2. {
  3.     public class TokenAndTime
  4.     {
  5.         public string access_token { getset; }
  6.         public double expires_in { getset; }
  7.     }
  8. }

方法层(借助redis缓存)

  1.               public static string GetToken()
  2.         {
  3.             RedisClient client = new RedisClient();
  4.             //从缓存中查看token
  5.             string token = client.Get<string>("token");
  6.             //如果缓存中存在token直接获取
  7.             if (!string.IsNullOrEmpty(token))
  8.             {
  9.                 return token;
  10.             }
  11.             //链接到微信服务器
  12.             HttpClient httpClient = new HttpClient();
  13.             HttpResponseMessage meg = httpClient.GetAsync("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己的appid&secret=自己的secret").Result;
  14.             //获取token数据
  15.             string tokenjson = meg.Content.ReadAsStringAsync().Result;
  16.             //将json字符串反序列化成对象
  17.             TokenAndTime tokenAndTime = JsonConvert.DeserializeObject<TokenAndTime>(tokenjson);
  18.             //保存在缓存里
  19.             client.Set<string>("token", tokenjson, TimeSpan.FromSeconds(tokenAndTime.expires_in - 100));
  20.             return tokenAndTime.access_token;
  21.         }
  22.     }


评价