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


欢迎加群交流技术

连接服务器基本配置
URL :服务器地址
Token : 验证请求是否是从微信发出(GET请求)4个参数,前台发送到后台的echostr,与后台返回的echostr一致,则认证成功
参数 | 描述 |
---|---|
signature | 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echostr | 随机字符串 |
EncodingAESKey :秘钥随机生成标识
关于access_token
公众号调用各接口时都需使用access_token,access_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层
- namespace DTO
- {
- public class TokenAndTime
- {
- public string access_token { get; set; }
- public double expires_in { get; set; }
- }
- }
方法层(借助redis缓存)
- public static string GetToken()
- {
- RedisClient client = new RedisClient();
- //从缓存中查看token
- string token = client.Get<string>("token");
- //如果缓存中存在token直接获取
- if (!string.IsNullOrEmpty(token))
- {
- return token;
- }
- //链接到微信服务器
- HttpClient httpClient = new HttpClient();
- HttpResponseMessage meg = httpClient.GetAsync("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己的appid&secret=自己的secret").Result;
- //获取token数据
- string tokenjson = meg.Content.ReadAsStringAsync().Result;
- //将json字符串反序列化成对象
- TokenAndTime tokenAndTime = JsonConvert.DeserializeObject<TokenAndTime>(tokenjson);
- //保存在缓存里
- client.Set<string>("token", tokenjson, TimeSpan.FromSeconds(tokenAndTime.expires_in - 100));
-
- return tokenAndTime.access_token;
- }
- }
评价