/// <summary> /// 加载扫码关注微信账号信息 /// </summary> /// <returns></returns> public WeiXinAccount LoadScanWeiXinAccount() { var account = LoadAccount(); var svcContext = new ServiceContexts.ServiceContext(); this.ScanWeiXinAccount = svcContext.IWeiXinQRCodePromotionActivityAccountService.GetWeiXinAccount(account.WebApplicationId, this.MemberOpenId); return(this.ScanWeiXinAccount); }
///// <summary> ///// 获取AccessToken对象 ///// </summary> ///// <returns></returns> //public static AccessToken GetAccessToken() //{ // //获取access_token // string url = string.Format("{0}token?grant_type=client_credential&appid={1}&secret={2}", Setting.ApiUrl, Setting.AppID, Setting.AppSecret); // WebClient webclient = new WebClient(); // try // { // //byte[] bytes = webclient.DownloadData(url); // //return DeSerialize<AccessToken>(Encoding.GetEncoding("utf-8").GetString(bytes)); // return DeSerialize<AccessToken>(DownJsonData(url)); // } // catch // { // return null; // } //} /// <summary> /// 获取微信账号的Access_Token数据 /// </summary> /// <param name="account"></param> /// <returns></returns> public static AccessToken GetAccessToken(WeiXinAccount account) { if (account == null) { return(null); } //获取access_token string url = string.Format("{0}cgi-bin/token?grant_type=client_credential&appid={1}&secret={2}", Setting.ApiUrl, account.AppID, account.AppSecret); WebClient webclient = new WebClient(); try { return(DeSerialize <AccessToken>(DownJsonData(url))); } catch { return(null); } }
/// <summary> /// 发送客服消息 /// </summary> /// <param name="account">微信帐号</param> /// <param name="account"></param> /// <returns></returns> public static ResponseState SendMessage(WeiXinAccount account, string openID, CustomMessage message) { return(SendMessage(GetAccessToken(account).Access_Token, openID, message)); }
/// <summary> /// 加载微信用户基本信息 /// </summary> /// <returns></returns> public WeiXinAccount LoadWeiXinAccount() { ServiceContexts.ServiceContext svcContext = new ServiceContexts.ServiceContext(); this.WeiXinAccount = svcContext.IWeiXinQRCodePromotionActivityAccountService.GetWeiXinAccount(this.WebApplicationId, this.OpenId); return(this.WeiXinAccount); }
public CreateSendCashRedPackListResult CreateSendCashRedPack(Guid webApplicationId, int usePoints, int exchangeMoney) { if (webApplicationId == Guid.Empty) { throw new BaseException("weiXinApplicationId不能为空"); } if (usePoints <= 0) { throw new BaseException("消费积分不能少于或等于0"); } if (exchangeMoney <= 0) { throw new BaseException("兑换金额不能少于或等于0"); } CreateSendCashRedPackListResult dataResult = new CreateSendCashRedPackListResult(); var preSendRedPackAccountList = this.ServiceContext.IWeiXinQRCodePromotionActivityAccountService.FindByProperties( Where.Create() .Eq("WebApplicationId", webApplicationId) .Ge("Points", usePoints) ); dataResult.TotalCount = preSendRedPackAccountList.Count; foreach (var account in preSendRedPackAccountList) { WeiXinAccount weiXinAccount = null; try { weiXinAccount = account.LoadWeiXinAccount(); } catch { } if (weiXinAccount == null) { var dataResultItem = new CreateSendCashRedPackListResultItem() { ExchangeMoney = exchangeMoney, Remark = string.Format("{0}-OpenId失败,加载微信账号信息失败,可能是没有订阅或者网络连接失败导致", account.OpenId), IsSuccess = true, UsePoints = usePoints, WeiXinAccount = weiXinAccount, OpenId = account.OpenId }; dataResult.CreateSendCashRedPackListResultItems.Add(dataResultItem); continue; } try { CreateSendCashRedPackListResultItem dataResultItem = new CreateSendCashRedPackListResultItem() { ExchangeMoney = exchangeMoney, Remark = string.Format("{0}-OpenId,{1},成功", account.OpenId, weiXinAccount.nickname), IsSuccess = true, UsePoints = usePoints, WeiXinAccount = weiXinAccount, OpenId = account.OpenId }; this.ServiceContext.IWeiXinQRCodePromotionActivitySendRedPackService.CreateSendCashRedPack(webApplicationId, account.ID, usePoints, exchangeMoney); dataResult.CreateSendCashRedPackListResultItems.Add(dataResultItem); dataResult.SuccessCount++; } catch (Exception ex) { var dataResultItem = new CreateSendCashRedPackListResultItem() { ExchangeMoney = exchangeMoney, Remark = string.Format("{0}-OpenId,失败,{1}<br />{2}<br />{3}", account.OpenId, ex.Message + (ex.InnerException != null ? "," + ex.InnerException.Message : ""), ex.Source, ex.StackTrace ), IsSuccess = true, UsePoints = usePoints, WeiXinAccount = weiXinAccount, OpenId = account.OpenId }; dataResult.CreateSendCashRedPackListResultItems.Add(dataResultItem); } } return(dataResult); }