public void Register() { var accessToken = AccessTokenContainer.GetAccessToken(_appId); var testData = new RegisterData() { name = "苏震巍", phone_number = "13913718816", email = "*****@*****.**", //industry_id = RegisterData.ConvertIndustryId(IndustryId.其它_其它), qualification_cert_urls = new List <string>() { "http://shp.qpic.cn/wx_shake_bus/0/1428565236d03d864b7f43db9ce34df5f720509d0e/0", "http://shp.qpic.cn/wx_shake_bus/0/1428565236d03d864b7f43db9ce34df5f720509d0e/0" }, apply_reason = "test" }; var result = ShakeAroundApi.Register(accessToken, testData, IndustryId.代运营商_代运营商); Assert.AreEqual(result.errcode, ReturnCode.请求成功); }
public static string GetWeChatAccessToken() { string access_token = ""; var wechatAccessToken = CacheHelper.GetCache("WeChatAccessToken"); if (wechatAccessToken != null && !string.IsNullOrEmpty(wechatAccessToken.ToString())) { access_token = wechatAccessToken.ToString(); return(access_token); } else { access_token = AccessTokenContainer.TryGetAccessToken(ApiConfigConst.WeChatAppID, ApiConfigConst.WeChatAppSecret); if (!string.IsNullOrEmpty(access_token)) { //设置30天过期 CacheHelper.SetCache("WeChatAccessToken", access_token, 30 * 24 * 60); } } return(access_token); }
/// <summary> /// 修改自定义菜单 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult UpdateMenu(string id) { try { var model = id.JsonToObj <MenuModel>(); if (model != null) { var bg = GetSendMenuJson(model.list); var result = CommonApi.CreateMenu(AccessTokenContainer.TryGetAccessToken("wxd4d7bd7f8fdc8156", "0482ace1cf1b9dcf702ba4366be65db8"), bg); if (result != null) { return(Content(result.errcode.ToStringEx())); } } return(Content("1")); } catch (Exception err) { return(Content(err.Message)); } }
private string CreateMenuWithButtonGroup() { try { var accessToken = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret); ButtonGroup bg = new ButtonGroup(); // 添加 Order 菜单 bg.button.Add(new SingleClickButton() { name = "Order", key = "OrderClick", type = MenuButtonType.view.ToString(), //默认已经设为此类型,这里只作为演示 }); var result = CommonApi.CreateMenu(accessToken, bg); return(result.ToString()); } catch (Exception e) { return(e.StackTrace.ToString()); } }
//public NotifyWeChatQueueDto Get(int id) //{ // var entity = _notifyWeChatAppService.QueueGet(id); // return entity.MapTo<NotifyWeChatQueueDto>(); //} public void PostCreateNotifyWeChatQueue(NotifyWeChatQueueDto dto) { var queue = dto.MapTo <NotifyWeChatQueue>(); queue.QueueStatus = QueueStatus.Wait; _notifyWeChatAppService.QueueSave(queue); var config = _notifyWeChatAppService.ConfigGet(dto.NotifyApplicationId); var accessToken = AccessTokenContainer.TryGetAccessToken(config.AppId, config.Appsecret); var result = _notifyWeChatAppService.Send(accessToken, queue.Body); if (result.errcode == ReturnCode.请求成功) { queue.QueueStatus = QueueStatus.Success; } else { queue.QueueStatus = QueueStatus.Fail; } queue.QueueStatusCode = result.errcode.ToString(); _notifyWeChatAppService.QueueSave(queue); }
public IActionResult SendText() { var accessToken = AccessTokenContainer.TryGetAccessToken(mWeChatSettings.AppID, mWeChatSettings.AppSecret); const string URL_FORMAT = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}"; var data = new { touser = "******", msgtype = "text", text = new { content = "welcome to yongkang有人的" } }; var rv = CommonJsonSend.Send(accessToken, URL_FORMAT, data); return(new ContentResult() { Content = rv.errmsg }); }
public static T Do <T>(Func <string, T> fun, string appId, string appSecret, bool retryIfFaild = true) where T : WxJsonResult { T result = null; try { var accessToken = AccessTokenContainer.GetToken(appId, appSecret, Innocellence.Weixin.MP.CommonAPIs.CommonApi.GetToken, false); result = fun(accessToken); } catch (ErrorJsonResultException ex) { if (retryIfFaild && ex.JsonResult.errcode == ReturnCode.获取access_token时AppSecret错误或者access_token无效) { //尝试重新验证 var accessToken = AccessTokenContainer.GetToken(appId, appSecret, Innocellence.Weixin.MP.CommonAPIs.CommonApi.GetToken, true); result = Do(fun, appId, appSecret, false); } } return(result); }
public async Task <object> GetMPAccessToken(string appId, string appsecret) { MPAccessTokenInfo result = new MPAccessTokenInfo(); try { DateTime dateTime = DateTime.Now; var accessTokenResult = await AccessTokenContainer.GetAccessTokenResultAsync(_options.Value.AppId); var accessTokenBag = BaseContainer <AccessTokenBag> .TryGetItem(_options.Value.AppId); result.access_token = accessTokenResult.access_token; DateTime expireTime = accessTokenBag.AccessTokenExpireTime.DateTime; result.expires_in = (long)(expireTime - dateTime).TotalSeconds; } catch (Exception ex) { throw ex; } return(result); }
public ResultJSON <Store> Post([FromBody] Store model) { if (r.Has(s => s.Name == model.Name)) { return new ResultJSON <Store> { Code = 0, Msg = "操作失败,已存在" + model.Name } } ; r.CurrentUser = UserName; //推送到“系统设置” this.option.系统设置AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.系统设置Secret); MassApi.SendTextCard(option.系统设置AccessToken, option.系统设置AgentId, $"{UserName}新增了{model.Name}" , $"<div class=\"gray\">时间:{DateTime.Now.ToString("yyyy-MM-dd hh:mm")}</div>" , "https://vue.car0774.com/#/oilstore/store", toUser: "******"); return(new ResultJSON <Store> { Code = 0, Data = r.Insert(model) }); }
public async Task <ResultJSON <MoveStore> > UpdateInOutFact([FromBody] MoveStore m) { r.CurrentUser = UserName; var result = r.UpdateInOutFact(m); //推送到“油仓情况” this.option.油仓情况AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.油仓情况Secret); await MassApi.SendTextCardAsync(option.油仓情况AccessToken, option.油仓情况AgentId, "转仓生产完工,已更新油仓油量" , $"<div class=\"gray\">单号:{result.Name}</div>" + $"<div class=\"normal\">施工人:{result.LastUpdatedBy}</div>" + $"<div class=\"normal\">转出:{result.OutStoreName} - {result.OutFact}升</div>" + $"<div class=\"normal\">转入:{result.InStoreName} - {result.InFact}升</div>" , $"https://vue.car0774.com/#/oilstore/inout", toUser : "******"); return(new ResultJSON <MoveStore> { Code = 0, Data = result }); }
public static string GetToken() { SiteSettings masterSettings = SettingsManager.GetMasterSettings(); if (string.IsNullOrEmpty(masterSettings.WeixinAppId) || string.IsNullOrEmpty(masterSettings.WeixinAppSecret)) { return(""); } try { return(AccessTokenContainer.TryGetToken(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, false)); } catch (Exception ex) { IDictionary <string, string> dictionary = new Dictionary <string, string>(); dictionary.Add("WeixinAppId", masterSettings.WeixinAppId); dictionary.Add("WeixinAppSecret", masterSettings.WeixinAppSecret); Globals.WriteExceptionLog(ex, dictionary, "WxFansGetAccessToken"); return(""); } }
private string souideaKey = WebConfigurationManager.AppSettings["WeixinAgentWeiweihiKey"]; //SouideaKey专门用于对接www.souidea.com平台,获取方式见:http://www.souidea.com/ApiDocuments/Item/25#51 #endif public CustomMessageHandler(Stream inputStream, string token, string appid, string secrect, int maxRecordCount = 0) : base(inputStream, maxRecordCount) { //这里设置仅用于测试,实际开发可以在外部更全局的地方设置, //比如MessageHandler<MessageContext>.GlobalWeixinContext.ExpireMinutes = 3。 WeixinContext.ExpireMinutes = 3; try { if (!AccessTokenContainer.CheckRegistered(appid)) { AccessTokenContainer.Register(appid, secrect); } _tokenRes = AccessTokenContainer.GetTokenResult(appid); //CommonAPIs.CommonApi.GetToken(appId, appSecret); } catch { FileLogUtility.Inform(string.Format("获取到 token 失败, appid: {0},secret: {1}。", appid, secrect)); } }
public static void DownloadDatafromWX() { QYConfig.RegistWX(); var accessToken = AccessTokenContainer.GetToken(QYConfig.CorpId); var result = MailListApi.GetDepartmentList(accessToken); for (int i = 0; i < result.department.Count; i++) { DepartmentDA.AddDepartment(result.department[i].id.ToString(), result.department[i].parentid.ToString(), result.department[i].name, "1", "1"); } QYDepartmentBL d = GetAllDepartments(); var l = MailListApi.GetDepartmentMemberInfo(accessToken, 1, 1, 0); for (int i = 0; i < l.userlist.Count; i++) { QYMemberDA mda = new QYMemberDA(); QYDepartmentBL p = QYDepartmentBL.GetByWXID(l.userlist[i].department[0].ToString()); mda.AddMember(l.userlist[i].userid, l.userlist[i].name, l.userlist[i].position, l.userlist[i].mobile, l.userlist[i].email, l.userlist[i].weixinid, l.userlist[i].avatar, l.userlist[i].status.ToString(), "1", p.ID.ToString()); } }
// GET: Admin/Menu public ActionResult Index() { if (Session["CurrentAccountID"] == null) { return(RedirectToAction("Select", "OfficialAccount", new { Area = "Admin" })); } Guid accountid = Guid.Parse(Session["CurrentAccountID"].ToString()); ViewBag.AccountID = accountid; OfficialAccount_BLL bll = new OfficialAccount_BLL(); OfficialAccount oa = bll.Get(a => a.AccountID == accountid); ViewBag.AppID = oa.AppID; string accessToken = AccessTokenContainer.TryGetAccessToken(oa.AppID, oa.AppSecret); GetMenuResult result = CommonApi.GetMenu(accessToken); return(View(result)); //return Json(result,JsonRequestBehavior.AllowGet); }
public void SetAppTest() { var accessToken = AccessTokenContainer.GetToken(_corpId, base._corpSecret); SetAppPostData date = new SetAppPostData() { agentid = "2",//"100" + DateTime.Now.ToString("yyMMddHHMM"), report_location_flag = "1", //logo_mediaid = "1muvdK7W8cjLfNqj0hWP89-CEhZNOVsktCE1JHSTSNpzTf7cGOXyDin_ozluwNZqi", name = "单元测试添加" + DateTime.Now.ToString("yyMMddHHMM"), description = "test", redirect_domain = "https://sdk.weixin.senparc.com", //isreportenter = 0, isreportuser = 1, home_url = "weixin.senparc.com" }; var result = AppApi.SetApp(accessToken, date); Assert.AreEqual(result.errcode, ReturnCode_Work.请求成功); }
public void BatchGetUserInfoTest() { List <BatchGetUserInfoData> data = new List <BatchGetUserInfoData>(); //改成自己公众号的OpenId var openids = new[] { "oxRg0uLsnpHjb8o93uVnwMK_WAVw", "oxRg0uFnf66iXoS_ScybtgjUgK28", "oxRg0uKDWyD8yxgLEFuJFRsI_LQ0" }; foreach (var item in openids) { data.Add(new BatchGetUserInfoData() { openid = item, lang = Language.zh_CN.ToString() }); } var accessToken = AccessTokenContainer.GetAccessToken(_appId); var result = UserApi.BatchGetUserInfo(accessToken, data); Assert.AreEqual(result.errcode, ReturnCode.请求成功); }
private void InitAppKey() { if (new[] { appId, secret }.Any(string.IsNullOrEmpty)) { lock (initLock) { if (new[] { appId, secret }.Any(string.IsNullOrEmpty)) { var account = YunClient.Instance.Execute(new GetWxAccountsRequest { PageNum = 1, PageSize = 1 }).Accounts[0]; appId = account.AppId; secret = account.Secret; wxtoken = account.AccessToken; encodingAESKey = account.Encodingaeskey; AccessTokenContainer.Register(appId, secret); } } } }
public string GetAccessToken(bool refresh = false) { var appId = WEIXIN_APPID_FIRST; var appSecret = WEIXIN_APPSECRET_FIRST; var cachekey = "weixinToken" + appId; var cache = System.Web.HttpRuntime.Cache.Get(cachekey); string accessToken = (string)cache; if (refresh) { accessToken = ""; } if (string.IsNullOrEmpty(accessToken)) { //AccessTokenContainer.Register(appId, appSecret); accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret); System.Web.HttpRuntime.Cache.Insert(cachekey, accessToken, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromHours(1)); } return(accessToken); }
public IActionResult Auth(string code, string state) { AccessTokenContainer.RegisterAsync(_wxSetting.WeixinAppId, _wxSetting.WeixinAppSecret, "doctor_platform"); string state1 = IdHelper.ObjectId(); //随机数,用于识别请求可靠性 HttpContext.Session.SetString("State", state1); //储存随机数到Session string signUrl = Request.AbsoluteUri(); // LoggerHelper.Info(signUrl); // MemoryCacheHelper.Set("test", "nihao", TimeSpan.FromMinutes(1)); // var keys= MemoryCacheHelper.GetCacheKeys(); if (!string.IsNullOrEmpty(code)) { var result = OAuthApi.GetAccessToken(_wxSetting.WeixinAppId, _wxSetting.WeixinAppSecret, code); if (result.errcode != ReturnCode.请求成功) { return(Content("错误:" + result.errmsg)); } //LoggerHelper.Info(result.openid); //尝试获取用户信息 //OAuthUserInfo userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid); //string json = userInfo.ToJson(); //LoggerHelper.Info(json); //Task.Factory.StartNew(() => GetUserInfo(result.access_token, result.openid)); string key = "{access_token}:wxtoken"; var redisClient = RedisFactory.GetRedisClient(); redisClient.Set(key, result, result.expires_in); RequestHelper.SetOpenId(result.openid, result.expires_in); string homeUrl = $"/wechat/index.html?openId={result.openid}"; return(Redirect(homeUrl)); } else { // signUrl = signUrl + "/WxExpert/Index";snsapi_userinfo snsapi_base var url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect", _wxSetting.WeixinAppId, signUrl.UrlEncode(), state1); return(Redirect(url)); } }
/// <summary> /// 删除本部门 /// </summary> /// <param name="errMsg">返回錯誤信息</param> /// <returns>返回操作結果</returns> public bool DeleteDepartment(string UserID, ref string errMsg, List <QYDepartmentBL> list = null) { try { QYConfig.RegistWX(); var accessToken = AccessTokenContainer.GetToken(QYConfig.CorpId); var result = MailListApi.DeleteDepartment(accessToken, DepartmentID); if (result.errcode.ToString() == "请求成功") { if (DepartmentDA.DeleteDepartmentByPkID(ID.ToString(), UserID)) { DeleteBy = UserID; DeleteDate = DateTime.Now; if (list != null) { list.Remove(this); } return(true); } else { errMsg = "数据库刪除部门失败"; return(false); } } else { Logger.Log4Net.Error(result.errcode + ":" + result.errmsg); errMsg = result.errcode + ":" + result.errmsg; } } catch (Exception e) { Logger.Log4Net.Error("Delete department error:" + e); errMsg = "操作失敗:" + e.Message; return(false); } return(false); }
/// <summary> /// 回复消息 /// </summary> /// <returns></returns> public async Task <IActionResult> ReplayMessage(long messageId, string content) { var message = await messageManager.GetMessageByIdAsync(messageId); //构建发送消息 MessageParameter sendMessage = new MessageParameter { ToUserId = message.FromUserId, Type = EMsgType.Text, Content = content, FromUserName = message.ToUserName, ToUserName = message.FromUserName, ToUserNick = message.FromUserNick, CreateTime = DateTime.Now }; //获取accessToken var accessToken = AccessTokenContainer.TryGetAccessToken(WeixinConfig.AppId, WeixinConfig.AppSecret); //发送消息 var data = new { touser = sendMessage.ToUserName, msgtype = "text", text = new { content = content } }; var result = await CommonJsonSend.SendAsync(accessToken, WeixinConfig.URL_FORMAT, data); if (result.errcode != ReturnCode.请求成功) { return(Json(new ReturnResult { IsSuccess = false, Message = result.errmsg })); } //保存发送消息 await messageManager.SaveAsync(sendMessage); return(Json(new ReturnResult())); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IOptions <SenparcWeixinSetting> senparcWeixinSetting) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); // Browser Link is not compatible with Kestrel 1.1.0 // For details on enabling Browser Link, see https://go.microsoft.com/fwlink/?linkid=840936 // app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseSession(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); #region 微信相关 //注册微信 AccessTokenContainer.Register(senparcWeixinSetting.Value.WeixinAppId, senparcWeixinSetting.Value.WeixinAppSecret); //Senparc.Weixin SDK 配置 Senparc.Weixin.Config.DefaultSenparcWeixinSetting = senparcWeixinSetting.Value; #endregion }
public ResultJSON <Product> ModifyProdPrice([FromBody] List <Product> list) { r.CurrentUser = UserName; int count = r.ModifyProdPrice(list); if (count == 0) { return new ResultJSON <Product> { Code = 501, Msg = "提交的单价没有变化" } } ; if (count == -1) { return new ResultJSON <Product> { Code = 501, Msg = "保存出错,请联系开发人员" } } ; #if DEBUG //推送到“水上计划” this.option.水上计划AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.水上计划Secret); MassApi.SendTextCard(option.水上计划AccessToken, option.水上计划AgentId, $"{UserName}修改了{count}项商品限价" , $"<div class=\"gray\">时间:{DateTime.Now.ToString("yyyy-MM-dd hh:mm")}</div>" , "https://", toUser: "******"); //推送到“陆上计划” this.option.陆上计划AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.陆上计划Secret); MassApi.SendTextCard(option.陆上计划AccessToken, option.陆上计划AgentId, $"{UserName}修改了{count}项商品限价" , $"<div class=\"gray\">时间:{DateTime.Now.ToString("yyyy-MM-dd hh:mm")}</div>" , "https://", toUser: "******"); //推送到“销售单” this.option.销售单AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.销售单Secret); MassApi.SendTextCard(option.销售单AccessToken, option.销售单AgentId, $"{UserName}修改了{count}项商品限价" , $"<div class=\"gray\">时间:{DateTime.Now.ToString("yyyy-MM-dd hh:mm")}</div>" , "https://", toUser: "******"); #endif return(new ResultJSON <Product> { Code = 0 }); }
public void GetAccessTokenTest() { ICache cache = new InMemoryCache(new MemoryCache(new MemoryCacheOptions())); //ICache cache = new RedisCache(new Microsoft.Extensions.Caching.Redis.RedisCache(new Microsoft.Extensions.Caching.Redis.RedisCacheOptions() { Configuration = "127.0.0.1:6379,password=123456" })); BaseSettings weixinSetting = new BaseSettings() { AppId = "wx6eff55d0d76e210f", AppSecret = "60ab768429e8fc6b86abaa9cfd1c6565" }; OAuthInterfaceCaller oAuthInterface = new OAuthInterfaceCaller(new RestClient(), weixinSetting); var container = new AccessTokenContainer(cache, oAuthInterface); List <string> tokens = new List <string>(); for (int i = 0; i < 10; i++) { tokens.Add(container.GetAccessToken()); } foreach (var item in tokens) { Console.WriteLine(item); } }
public JsonResult getWinxin(string pluginId, string destination) { long uid = ShopApplication.GetShopManagers(CurrentSellerManager.ShopId); var siteSetting = SiteSettingApplication.SiteSettings; //微信二维码 if (string.IsNullOrWhiteSpace(siteSetting.WeixinAppId) || string.IsNullOrWhiteSpace(siteSetting.WeixinAppSecret)) { throw new HimallException("未配置公众号参数"); } var token = AccessTokenContainer.TryGetToken(siteSetting.WeixinAppId, siteSetting.WeixinAppSecret); SceneModel scene = new SceneModel(QR_SCENE_Type.Binding) { Object = uid.ToString() }; SceneHelper helper = new SceneHelper(); var sceneid = helper.SetModel(scene); var ticket = Senparc.Weixin.MP.AdvancedAPIs.QrCode.QrCodeApi.Create(token, 300, sceneid); return(Json(new { success = true, msg = "成功", ticket = ticket.ticket, Sceneid = sceneid })); }
public void CreateMenuTest() { BaseSettings weixinSetting = new BaseSettings() { AppId = "wx6eff55d0d76e210f", AppSecret = "60ab768429e8fc6b86abaa9cfd1c6565" }; OAuthInterfaceCaller oAuthInterface = new OAuthInterfaceCaller(new RestClient(), weixinSetting); ICache cache = new InMemoryCache(new MemoryCache(new MemoryCacheOptions())); AccessTokenContainer container = new AccessTokenContainer(cache, oAuthInterface); var accessToken = container.GetAccessToken(); string menu = @" { ""button"":[ { ""type"":""click"", ""name"":""今日歌曲"", ""key"":""V1001_TODAY_MUSIC"" }, { ""name"":""菜单"", ""sub_button"":[ { ""type"":""view"", ""name"":""搜索"", ""url"":""http://www.soso.com/"" }, { ""type"":""click"", ""name"":""赞一下我们"", ""key"":""V1001_GOOD"" }] }] } "; MenuInterfaceCaller menuInterfaceCaller = new MenuInterfaceCaller(new RestClient()); Console.WriteLine(menuInterfaceCaller.CreateMenu(accessToken, menu)); }
public ActionResult ApplyWithDraw() { var siteSetting = _iSiteSettingService.GetSiteSettings(); if (string.IsNullOrWhiteSpace(siteSetting.WeixinAppId) || string.IsNullOrWhiteSpace(siteSetting.WeixinAppSecret)) { throw new HimallException("未配置公众号参数"); } var token = AccessTokenContainer.TryGetToken(siteSetting.WeixinAppId, siteSetting.WeixinAppSecret); SceneModel scene = new SceneModel(QR_SCENE_Type.WithDraw) { Object = CurrentUser.Id.ToString() }; SceneHelper helper = new SceneHelper(); var sceneid = helper.SetModel(scene); var ticket = Senparc.Weixin.MP.AdvancedAPIs.QrCode.QrCodeApi.Create(token, 300, sceneid); ViewBag.ticket = ticket.ticket; ViewBag.Sceneid = sceneid; var capitalService = _iMemberCapitalService; var model = capitalService.GetCapitalInfo(CurrentUser.Id); if (model != null) { ViewBag.ApplyWithMoney = model.Balance.Value; } else { ViewBag.ApplyWithMoney = 0; } var member = _iMemberService.GetMember(CurrentUser.Id);//CurrentUser对象有缓存,取不到最新数据 ViewBag.IsSetPwd = string.IsNullOrWhiteSpace(member.PayPwd) ? false : true; ViewBag.WithDrawMinimum = siteSetting.WithDrawMinimum; ViewBag.WithDrawMaximum = siteSetting.WithDrawMaximum; return(View()); }
/// <summary> /// 发货通知 /// </summary> /// <param name="appId">公众平台账户的AppId</param> /// <param name="openId">购买用户的OpenId</param> /// <param name="transId">交易单号</param> /// <param name="out_Trade_No">第三方订单号</param> /// <param name="deliver_TimesTamp">发货时间戳</param> /// <param name="deliver_Status">发货状态,1 表明成功,0 表明失败,失败时需要在deliver_msg 填上失败原因</param> /// <param name="deliver_Msg">发货状态信息,失败时可以填上UTF8 编码的错误提示信息,比如“该商品已退款</param> /// <param name="app_Signature">签名</param> /// <param name="sign_Method">签名方法</param> public static DelivernotifyResult Delivernotify(string appId, string openId, string transId, string out_Trade_No, string deliver_TimesTamp, string deliver_Status, string deliver_Msg, string app_Signature, string sign_Method = "sha1") { var accessToken = AccessTokenContainer.GetToken(appId); var urlFormat = "https://api.weixin.qq.com/pay/delivernotify?access_token={0}"; //组装发送消息 var data = new { appid = appId, openid = openId, transid = transId, out_trade_no = out_Trade_No, deliver_timestamp = deliver_TimesTamp, deliver_status = deliver_Status, deliver_msg = deliver_Msg, app_signature = app_Signature, sign_method = sign_Method }; return(CommonJsonSend.Send <DelivernotifyResult>(accessToken, urlFormat, data)); }
/// <summary> /// 异步更新AccessToken /// </summary> /// <param name="getNewToken"></param> public static string GetTokenAsync(bool getNewToken = false) { //AccessTokenResult r = CommonApi.GetToken(Qyinfo.corpId, Qyinfo.corpSecret, "client_credential"); string strIp = CommonHelp.getIP(HttpContext.Current); string _username = CommonHelp.GetUserNameByszhlcode(); var task1 = new Task <string>(() => AccessTokenContainer.TryGetAccessTokenAsync(AppId, AppSecret, getNewToken).Result ); task1.Start(); string accesstoken = task1.Result; if (accesstoken.Trim().Length > 0) { CommonHelp.UpdateAppConfig("AccessToken", accesstoken); new JH_Auth_LogB().InsertLog("WXFWHelper", "更新AccessToken为" + accesstoken, "WXFWHelper", _username, _username, 0, strIp); Updatejsapiticket(accesstoken, _username, strIp); } return(accesstoken); }
public ActionResult Index(long id) { //TODO:改成统一的方式取 Token var token = AccessTokenContainer.TryGetToken(this._siteSetting.WeixinAppId, this._siteSetting.WeixinAppSecret); SceneHelper helper = new SceneHelper(); var qrTicket = Senparc.Weixin.MP.AdvancedAPIs.QrCode.QrCodeApi.Create(token, 86400, 7758258).ticket; ViewBag.QRTicket = qrTicket; WeiActivityModel activityModel = WeiActivityApplication.GetActivityModel(id); activityModel.userId = curUserId; activityModel.winModel = AddWinInfo(activityModel); var integrals = _iMemberIntegralService.GetMemberIntegral(curUserId);//用户可用积分 activityModel.winModel.integrals = integrals == null ? 0 : integrals.AvailableIntegrals; activityModel.participationCount = GetParticipationCount(activityModel); consumePoint = activityModel.consumePoint; return(View(activityModel)); }