Example #1
0
 public WxController(ILogger <WxController> logger, IDBService dbService,
                     IWxService wxService, WxContext wxContext)
     : base(logger, dbService)
 {
     this.wxContext = wxContext;
     this.wxService = wxService;
 }
Example #2
0
        public static void InitAuthInfo([NotNull] this WxContext wxContext, string appId, string appSercet)
        {
            Check.NotNull(wxContext, "wxContext");

            wxContext.AuthInfo.AppId     = appId;
            wxContext.AuthInfo.AppSercet = appSercet;
        }
Example #3
0
        public WxAuthToken GetAuthToken(WxContext wxContext, string code)
        {
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("appid", wxContext.AuthInfo.AppId);
            paramDict.Add("secret", wxContext.AuthInfo.AppSercet);
            paramDict.Add("code", code);
            paramDict.Add("grant_type", "authorization_code");

            return(HttpRequestUtil.Get <WxAuthToken>(Const.WxAuthTokenUrl, paramDict));
        }
Example #4
0
        /// <summary>
        /// 获取微信jssdk鉴权配置
        /// </summary>
        /// <param name="wxContext"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public WxJSSDKConfig GetWxJSSDKConfig(WxContext wxContext, string url)
        {
            WxJSSDKConfig config = new WxJSSDKConfig();

            config.AppId     = wxContext.AuthInfo.AppId;
            config.TimeStamp = Convert.ToString(DateTimeUtil.GetCurrentTimeStamp());
            config.Signature = GetSignture(GetTicket(wxContext).Ticket, wxContext.NonceStr, url, config.TimeStamp);
            config.NonceStr  = wxContext.NonceStr;

            return(config);
        }
Example #5
0
        public void GetAuthCode(WxContext wxContext, string redirectUrl)
        {
            //?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("appid", wxContext.AuthInfo.AppId);
            paramDict.Add("redirect_uri", redirectUrl);
            paramDict.Add("response_type", "code");
            paramDict.Add("scope", "snsapi_base#wechat_redirect");

            HttpRequestUtil.Get <string>(Const.WxAuthCodeUrl, paramDict);
        }
Example #6
0
        private void AddWxService(IServiceCollection services)
        {
            var       appId     = Configuration["WxAuthInfo:AppId"];
            var       appSercet = Configuration["WxAuthInfo:AppSerect"];
            WxContext wxContext = new WxContext();

            wxContext.InitAuthInfo(appId, appSercet);

            services.AddSingleton(wxContext);

            services.AddTransient <IWxService, WxService>();
        }
Example #7
0
        /// <summary>
        /// 获取微信用户基本信息
        /// </summary>
        /// <param name="wxContext"></param>
        /// <param name="openId"></param>
        /// <returns></returns>
        public WxUserInfo GetWxUserInfo(WxContext wxContext, string openId)
        {
            if (wxContext.Token == null || wxContext.Token.ExpiresTime <= DateTime.Now)
            {
                this.GetToken(wxContext);
            }
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("access_token", wxContext.Token.Access_Token);
            paramDict.Add("openid", openId);
            paramDict.Add("lang", "zh_CN");

            return(HttpRequestUtil.Get <WxUserInfo>(Const.WxUserInfo, paramDict));
        }
Example #8
0
        /// <summary>
        /// 获取微信普通access_token
        /// </summary>
        /// <param name="wxContext"></param>
        /// <returns></returns>
        public WxToken GetToken(WxContext wxContext)
        {
            if (wxContext.Token.ExpiresTime > DateTime.Now)
            {
                return(wxContext.Token);
            }
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("grant_type", "client_credential");
            paramDict.Add("appid", wxContext.AuthInfo.AppId);
            paramDict.Add("secret", wxContext.AuthInfo.AppSercet);

            var token = HttpRequestUtil.Get <WxToken>(Const.WxTokenUrl, paramDict);

            wxContext.Token = token;
            return(token);
        }
Example #9
0
        /// <summary>
        /// 获取微信jssdk算签名用的ticket
        /// </summary>
        /// <param name="wxContext"></param>
        /// <returns></returns>
        public WxTicket GetTicket(WxContext wxContext)
        {
            if (wxContext.Ticket.ExpiresTime > DateTime.Now)
            {
                return(wxContext.Ticket);
            }
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("access_token", GetToken(wxContext).Access_Token);
            paramDict.Add("type", "jsapi");

            var ticket = HttpRequestUtil.Get <WxTicket>(Const.WxTicketUrl, paramDict);

            wxContext.Ticket = ticket;

            return(ticket);
        }