/// <summary> /// 注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token /// </summary> /// <param name="appId">微信公众号后台的【开发】>【基本配置】中的“AppID(应用ID)”</param> /// <param name="appSecret">微信公众号后台的【开发】>【基本配置】中的“AppSecret(应用密钥)”</param> /// <param name="name">标记AccessToken名称(如微信公众号名称),帮助管理员识别</param> public static void Register(string appId, string appSecret, string name = null) { //记录注册信息,RegisterFunc委托内的过程会在缓存丢失之后自动重试 RegisterFunc = () => { //using (FlushCache.CreateInstance()) //{ var bag = new AccessTokenBag() { //Key = appId, Name = name, AppId = appId, AppSecret = appSecret, AccessTokenExpireTime = DateTime.MinValue, AccessTokenResult = new AccessTokenResult() }; Update(appId, bag);//第一次添加,此处已经立即更新 return(bag); //} }; RegisterFunc(); //为JsApiTicketContainer进行自动注册 JsApiTicketContainer.Register(appId, appSecret, name); //OAuthAccessTokenContainer进行自动注册 OAuthAccessTokenContainer.Register(appId, appSecret, name); }
/// <summary> /// 注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token /// </summary> /// <param name="appId">微信公众号后台的【开发】>【基本配置】中的“AppID(应用ID)”</param> /// <param name="appSecret">微信公众号后台的【开发】>【基本配置】中的“AppSecret(应用密钥)”</param> /// <param name="name">标记AccessToken名称(如微信公众号名称),帮助管理员识别。当 name 不为 null 和 空值时,本次注册内容将会被记录到 Senparc.Weixin.Config.SenparcWeixinSetting.Items[name] 中,方便取用。</param> public static void Register(string appId, string appSecret, string name = null) { //记录注册信息,RegisterFunc委托内的过程会在缓存丢失之后自动重试 RegisterFunc = () => { //using (FlushCache.CreateInstance()) //{ var bag = new AccessTokenBag() { //Key = appId, Name = name, AppId = appId, AppSecret = appSecret, AccessTokenExpireTime = DateTime.MinValue, AccessTokenResult = new AccessTokenResult() }; Update(appId, bag, null);//第一次添加,此处已经立即更新 return(bag); //} }; RegisterFunc(); if (!name.IsNullOrEmpty()) { Senparc.Weixin.WxConfig.SenparcWeixinSetting.Items[name].WeixinAppId = appId; Senparc.Weixin.WxConfig.SenparcWeixinSetting.Items[name].WeixinAppSecret = appSecret; } //为JsApiTicketContainer进行自动注册 JsApiTicketContainer.Register(appId, appSecret, name); //OAuthAccessTokenContainer进行自动注册 OAuthAccessTokenContainer.Register(appId, appSecret, name); }
/// <summary> /// 【异步方法】注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token /// </summary> /// <param name="appId">微信公众号后台的【开发】>【基本配置】中的N“AppID(应用ID)”</param> /// <param name="appSecret">微信公众号后台的【开发】>【基本配置】中的“AppSecret(应用密钥)”</param> /// <param name="name">标记AccessToken名称(如微信公众号名称),帮助管理员识别。当 name 不为 null 和 空值时,本次注册内容将会被记录到 Senparc.Weixin.Config.SenparcWeixinSetting.Items[name] 中,方便取用。</param> public static async Task RegisterAsync(string appId, string appSecret, string name = null) { //记录注册信息,RegisterFunc委托内的过程会在缓存丢失之后自动重试 RegisterFuncCollection[appId] = async() => { //using (FlushCache.CreateInstance()) //{ var bag = new AccessTokenBag() { //Key = appId, Name = name, AppId = appId, AppSecret = appSecret, AccessTokenExpireTime = DateTimeOffset.MinValue, AccessTokenResult = new AccessTokenResult() }; await UpdateAsync(appId, bag, null).ConfigureAwait(false);//第一次添加,此处已经立即更新 return(bag); //} }; var registerTask = RegisterFuncCollection[appId](); if (!name.IsNullOrEmpty()) { Senparc.Weixin.Config.SenparcWeixinSetting.Items[name].WeixinAppId = appId; Senparc.Weixin.Config.SenparcWeixinSetting.Items[name].WeixinAppSecret = appSecret; } //为JsApiTicketContainer进行自动注册 var registerJsApiTask = JsApiTicketContainer.RegisterAsync(appId, appSecret, name); await Task.WhenAll(new[] { registerTask, registerJsApiTask });//等待所有任务完成 }
/// <summary> /// 注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token /// </summary> /// <param name="appId">微信公众号后台的【开发】>【基本配置】中的“AppID(应用ID)”</param> /// <param name="appSecret">微信公众号后台的【开发】>【基本配置】中的“AppSecret(应用密钥)”</param> /// <param name="name">标记AccessToken名称(如微信公众号名称),帮助管理员识别</param> public static void Register(string appId, string appSecret, string name = null) { using (FlushCache.CreateInstance()) { Update(appId, new AccessTokenBag() { Name = name, AppId = appId, AppSecret = appSecret, AccessTokenExpireTime = DateTime.MinValue, AccessTokenResult = new AccessTokenResult() }); } //为JsApiTicketContainer进行自动注册 JsApiTicketContainer.Register(appId, appSecret, name); //OAuthAccessTokenContainer进行自动注册 OAuthAccessTokenContainer.Register(appId, appSecret, name); }