public WeiXinAccessToken GetAccessToken(WeiXinAppInfo appInfo)
        {
            if (string.IsNullOrEmpty(appInfo.AppId) || string.IsNullOrEmpty(appInfo.AppSecret))
            {
                throw new Exception(string.Format("系统中 {0} 的微信配置不完全,AppID或AppSecret为空.", appInfo.wxName));
            }

            //获取缓存的Access_Token
            var accessTokenList = this.Get(item => !item.Expired);

            if (accessTokenList.Any(item => !item.IsExpired()))
            {
                return(accessTokenList.FirstOrDefault(item => !item.IsExpired()));
            }
            else
            {
                if (accessTokenList.Count > 0)
                {
                    //this.Update(accessTokenList.ToList().SelectMany<WeiXinAccessToken,WeiXinAccessToken>());
                }

                //数据库不存在相应的AccessToken,则调用服务,再次获取
                var newAccessToken = new WeiXinAccessToken();
                newAccessToken.AppId   = appInfo.id;
                newAccessToken.Id      = Guid.NewGuid();
                newAccessToken.Expired = false;
                AccessTokenResult result = CommonApi.GetToken(appInfo.AppId, appInfo.AppSecret);
                newAccessToken.SysDateTime = DateTime.Now;
                newAccessToken.Ticket      = result.access_token;
                newAccessToken.Expires     = result.expires_in;
            }

            return(null);
        }
Esempio n. 2
0
        public ActionResult UserInfo()
        {
            WeiXinAppInfo weiXinAppInfo = ServerParam.Instance.WeiXinAppInfo;

            AccessTokenContainer.Register(ServerParam.Instance.WeiXinAppInfo.AppID, ServerParam.Instance.WeiXinAppInfo.AppSecret);
            var accessToken = AccessTokenContainer.GetToken(ServerParam.Instance.WeiXinAppInfo.AppID);

            var result = Senparc.Weixin.MP.AdvancedAPIs.User.Info(accessToken, ServerParam.Instance.WeiXinAppInfo.OpenID);

            return(View(result));
        }
Esempio n. 3
0
        public async Task <UserSessionInfo> Code2Session(WeiXinAppInfo appInfo, string jsCode)
        {
            var request = new AuthorizeCode2SessionRequest
            {
                AppId  = appInfo.AppId,
                Secret = appInfo.AppSecret,
                JSCode = jsCode
            };

            var response = await ServiceInvoker.RequestService <AuthorizeCode2SessionResponse>(request);

            return(response);
        }
 public WeiXinJsApiTicket GetJsApiTicket(WeiXinAppInfo appInfo)
 {
     return(null);
 }
Esempio n. 5
0
 public WeiXinAccessToken GetAccessToken(WeiXinAppInfo appInfo)
 {
     return(null);
 }
Esempio n. 6
0
 public bool Add(WeiXinAppInfo appInfo)
 {
     return(_AppRepository.Add(appInfo));
 }