排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
分类:
.net
连接服务器基本配置
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; } }
评价