public void ContainerTest() { //注册 AccessTokenContainer.Register(base._appId, base._appSecret); //获取Ticket完整结果(包括当前过期秒数) var ticketResult = JsApiTicketContainer.GetJsApiTicketResult(base._appId); Assert.IsNotNull(ticketResult); //只获取Ticket字符串 var ticket = JsApiTicketContainer.GetJsApiTicket(base._appId); Assert.AreEqual(ticketResult.ticket, ticket); Console.WriteLine(ticket); //getNewTicket { ticket = JsApiTicketContainer.TryGetJsApiTicket(base._appId, base._appSecret, false); Assert.AreEqual(ticketResult.ticket, ticket); ticket = JsApiTicketContainer.TryGetJsApiTicket(base._appId, base._appSecret, true); //Assert.AreNotEqual(ticketResult.ticket, ticket);//如果微信服务器缓存,此处会相同 Console.WriteLine(ticket); } }
public async Task <ActionResult> Test() { //注册 await AccessTokenContainer.RegisterAsync(TenPayV3Info.AppId, TenPayV3Info.Sub_AppSecret); var accessToken = AccessTokenContainer.TryGetAccessToken("wx4b58f9e96371d9ff", "43c5c4d9b8207634eb293a72ddad5bb1", true); var token = await AccessTokenContainer.TryGetAccessTokenAsync(TenPayV3Info.AppId, TenPayV3Info.Sub_AppSecret, false); //获取Ticket完整结果(包括当前过期秒数) var ticketResult = JsApiTicketContainer.GetJsApiTicketResult(TenPayV3Info.AppId); // //只获取Ticket字符串 var ticket = JsApiTicketContainer.GetJsApiTicket(TenPayV3Info.AppId); //getNewTicket { ticket = JsApiTicketContainer.TryGetJsApiTicket(TenPayV3Info.AppId, TenPayV3Info.Sub_AppSecret, false); ticket = JsApiTicketContainer.TryGetJsApiTicket(TenPayV3Info.AppId, TenPayV3Info.Sub_AppSecret, true); //Assert.AreNotEqual(ticketResult.ticket, ticket);//如果微信服务器缓存,此处会相同 } return(Content(token)); }
public static ShareInfo GetPayInfo(string prepayid) { var shareInfo = new ShareInfo(); //检查是否已经注册jssdk if (!JsApiTicketContainer.CheckRegistered(ConfigHelper.WeChatAppId)) { JsApiTicketContainer.Register(ConfigHelper.WeChatAppId, ConfigHelper.WeChatSecret); } JsApiTicketResult jsApiTicket = JsApiTicketContainer.GetJsApiTicketResult(ConfigHelper.WeChatAppId); JSSDKHelper jssdkHelper = new JSSDKHelper(); shareInfo.Ticket = jsApiTicket.ticket; shareInfo.CorpId = ConfigHelper.WeChatAppId.ToLower(); shareInfo.Noncestr = JSSDKHelper.GetNoncestr().ToLower(); shareInfo.Timestamp = JSSDKHelper.GetTimestamp().ToLower(); shareInfo.Package = "prepay_id=" + prepayid.ToLower(); RequestHandler requestHandler = new RequestHandler(HttpContext.Current); requestHandler.SetParameter("appId", shareInfo.CorpId); requestHandler.SetParameter("timeStamp", shareInfo.Timestamp); requestHandler.SetParameter("nonceStr", shareInfo.Noncestr); requestHandler.SetParameter("package", shareInfo.Package); requestHandler.SetParameter("signType", "MD5"); requestHandler.SetKey(tenPayV3Info.Key); requestHandler.CreateMd5Sign(); requestHandler.GetRequestURL(); requestHandler.CreateSHA1Sign(); shareInfo.PaySign = (requestHandler.GetAllParameters()["sign"]).ToString(); return(shareInfo); }
public object GetToken(Wx_App app, string secret) { Acesoft.Check.Require(secret == app.Secret, "传入的AppId与Secret不匹配!"); var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(app.AppId); var accessTokenBag = BaseContainer <AccessTokenBag> .TryGetItem(app.AppId); var jsApiTicketResult = JsApiTicketContainer.GetJsApiTicketResult(app.AppId); var jsApiTicketBag = BaseContainer <JsApiTicketBag> .TryGetItem(app.AppId); return(new { appid = app.AppId, token = accessTokenResult.access_token, token_expired = accessTokenBag.AccessTokenExpireTime.ToUnixTimeSeconds(), ticket = jsApiTicketResult.ticket, ticket_expired = jsApiTicketBag.JsApiTicketExpireTime.ToUnixTimeSeconds() }); }
public static T TryCommonTicketApi <T>(Func <string, T> fun, string AppId, string strSecret, bool retryIfFaild = true) where T : WxJsonResult { string appId = null; string ticket = null; if (AppId == null) { //appId = AccessTokenContainer.GetFirstOrDefaultAppId(); if (appId == null) { throw new UnRegisterAppIdException(null, "尚无已经注册的AppId,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!"); } } else if (ApiUtility.IsAppId(AppId)) { //if (!AccessTokenContainer.CheckRegistered(AppId)) //{ // throw new UnRegisterAppIdException(AppId, string.Format("此appId({0})尚未注册,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!", AppId)); //} appId = AppId; } else { //accessToken ticket = AppId; } T result = null; try { if (ticket == null) { var accessTokenResult = JsApiTicketContainer.GetJsApiTicketResult(appId, strSecret, Innocellence.Weixin.MP.CommonAPIs.CommonApi.GetTicket, false); ticket = accessTokenResult.ticket; } result = fun(ticket); } catch (ErrorJsonResultException ex) { if (retryIfFaild && appId != null && ex.JsonResult.errcode == ReturnCode.Ticket不合法) { JsApiTicketContainer.UpdateNull(appId, strSecret); //尝试重新验证 var accessTokenResult = JsApiTicketContainer.GetJsApiTicketResult(appId, strSecret, Innocellence.Weixin.MP.CommonAPIs.CommonApi.GetTicket, false);//强制获取并刷新最新的AccessToken if (ticket == accessTokenResult.ticket) { accessTokenResult = JsApiTicketContainer.GetJsApiTicketResult(appId, strSecret, Innocellence.Weixin.MP.CommonAPIs.CommonApi.GetTicket, true); } ticket = accessTokenResult.ticket; result = fun(ticket); //result = TryCommonApi(fun, appId,strSecret, false); } else { throw; } } return(result); }