Esempio n. 1
0
        /// <summary>
        /// 获取access_token。会缓存,过期后自动重新获取新的token。
        /// </summary>
        public static string GetAccessToken(WeChatParam param = null)
        {
            var appId  = GetConfig.GetAppid(param);
            var secret = GetConfig.GetSecret(param);

            if (!AccessTokensCache.ContainsKey(appId) || AccessTokensCache[appId] == null ||
                AccessTokensCache[appId].ExpireTime < DateTime.Now)
            {
                var result = HttpHelper.Get <TokenResult>(ApiList.GetTokenUrl, new HttpParam
                {
                    { "grant_type", "client_credential" },
                    { "appid", appId },
                    { "secret", secret }
                });
                if (!result.IsSuccess)
                {
                    throw new WxException(result.errcode, result.errmsg);
                }
                AccessTokensCache[appId] = new TokenCache
                {
                    AccessToken = result.access_token,
                    ExpireTime  = DateTime.Now.AddSeconds(result.expires_in - 60)
                };
            }
            return(AccessTokensCache[appId].AccessToken);
        }
Esempio n. 2
0
        /// <summary>
        /// 传入Code
        /// </summary>
        public static Dictionary <string, string> GetOauth2AccessToken(UserParam param)
        {
            var param2 = new HttpParam()
            {
                { "appid", GetConfig.GetAppid(param) },
                { "secret", GetConfig.GetSecret(param) },
                { "code", param.Code },
                { "grant_type", "authorization_code" }
            };
            var dic = HttpHelper.Get <Dictionary <string, string> >(ApiList.GetOauth2AccessTokenUrl, param2);

            return(dic);
        }