public WxController(ILogger <WxController> logger, IDBService dbService, IWxService wxService, WxContext wxContext) : base(logger, dbService) { this.wxContext = wxContext; this.wxService = wxService; }
public static void InitAuthInfo([NotNull] this WxContext wxContext, string appId, string appSercet) { Check.NotNull(wxContext, "wxContext"); wxContext.AuthInfo.AppId = appId; wxContext.AuthInfo.AppSercet = appSercet; }
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)); }
/// <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); }
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); }
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>(); }
/// <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)); }
/// <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); }
/// <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); }