/// <summary> /// 获取菜单Json原始数据 /// </summary> /// <returns></returns> public JToken GetMenuJsonData() { var url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + _accountModel.GetAccessToken(); var content = WeiXinHttpHelper.GetString(url); return(JToken.Parse(content)); }
/// <summary> /// 获取自定义菜单信息。 /// </summary> /// <returns>自定义菜单信息。</returns> public CustomMenuModel Get() { var url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + _accountModel.GetAccessToken(); var content = WeiXinHttpHelper.GetString(url); return(GetByJson(content)); }
/// <summary> /// 获取卡券可用颜色。 /// </summary> /// <returns>可用颜色数组。</returns> public CardColorItem[] GetCardColors() { var url = "https://api.weixin.qq.com/card/getcolors?access_token=" + _accountModel.GetAccessToken(); var json = WeiXinHttpHelper.GetString(url); return(JsonConvert.DeserializeObject <CardColorItem[]>(JObject.Parse(json)["colors"].ToString())); }
/// <summary> /// 获取服务器Ip地址列表。 /// </summary> /// <returns>服务器Ip地址列表。</returns> public string[] GetServerIpList() { var url = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=" + _accountModel.GetAccessToken(); var json = WeiXinHttpHelper.GetString(url); var array = (JArray)JObject.Parse(json)["ip_list"]; return(array.Select(i => i.Value <string>()).ToArray()); }
/// <summary> /// 获取自定义菜单信息。 /// </summary> /// <returns>自定义菜单数组。</returns> public CustomMenuButtonBase[] GetList() { var url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + _accountModel.GetAccessToken(); var content = WeiXinHttpHelper.GetString(url); var buttons = (JArray)JObject.Parse(content)["menu"]["button"]; return(buttons.Select(token => GetMenuItemByWeiXin((JObject)token)).ToArray()); }
/// <summary> /// 获取客服的会话列表。 /// </summary> /// <param name="account">客服账号。</param> /// <returns>客服会话信息数组。</returns> public CustomServiceSessionInfo[] GetList(string account) { var url = string.Format("https://api.weixin.qq.com/customservice/kfsession/getsessionlist?access_token={0}&kf_account={1}", _accountModel.GetAccessToken(), account); var content = WeiXinHttpHelper.GetString(url); var array = (JArray)JObject.Parse(content)["sessionlist"]; return(array.Select(i => new CustomServiceSessionInfo { CreateTimestamp = i.Value <long>("createtime"), OpenId = i.Value <string>("openid") }).ToArray()); }
/// <summary> /// 获取用户列表。 /// </summary> /// <param name="startOpenId">第一个拉取的OPENID,不填默认从头开始拉取</param> /// <returns>获取用户列表结果模型。</returns> public GetUserListResultModel GetUserList(string startOpenId = null) { var url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + _accountModel.GetAccessToken(); if (!string.IsNullOrWhiteSpace(startOpenId)) { url = url + "&next_openid=" + startOpenId; } var content = WeiXinHttpHelper.GetString(url); var obj = JObject.Parse(content); return(GetUserListResultModel.Create(obj)); }
/// <summary> /// 获取所有客服账号。 /// </summary> /// <returns>客服账号信息数组。</returns> public CustomServiceAccountInfo[] GetAccounts() { var url = "https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=" + _accountModel.GetAccessToken(); var content = WeiXinHttpHelper.GetString(url); var list = (JArray)JObject.Parse(content)["kf_list"]; return(list.Select(i => new CustomServiceAccountInfo { Account = i.Value <string>("kf_account"), HeadPictureUrl = i.Value <string>("kf_headimgurl"), Id = i.Value <ulong>("kf_id"), NickName = i.Value <string>("kf_nick"), }).ToArray()); }
/// <summary> /// 获取在线客服接待信息。 /// </summary> /// <returns>在线客服信息数组。</returns> public OnlineCustomServiceInfo[] GetOnlineList() { var url = "https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=" + _accountModel.GetAccessToken(); var content = WeiXinHttpHelper.GetString(url); var list = (JArray)JObject.Parse(content)["kf_online_list"]; return(list.Select(i => new OnlineCustomServiceInfo { Account = i.Value <string>("kf_account"), Id = i.Value <ulong>("kf_id"), MaxAutoAcceptNumber = i.Value <uint>("auto_accept"), ServingNumber = i.Value <uint>("accepted_case"), StatusNumber = i.Value <ushort>("status") }).ToArray()); }
/// <summary> /// 删除客服账号。 /// </summary> /// <param name="account">完整客服账号,格式为:账号前缀@公众号微信号</param> public void DeleteAccount(string account) { var url = string.Format("https://api.weixin.qq.com/customservice/kfaccount/del?access_token={0}&kf_account={1}", _accountModel.GetAccessToken(), account); WeiXinHttpHelper.GetString(url); }
/// <summary> /// 删除所有自定义菜单。 /// </summary> public void DeleteAll() { WeiXinHttpHelper.GetString("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + _accountModel.GetAccessToken()); }
/// <summary> /// 刷新访问票据。 /// </summary> /// <param name="refreshToken">刷新票据。</param> /// <returns>结果模型。</returns> public GetOAuthAccessTokenResult RefreshToken(string refreshToken) { var url = _openAccountModel == null?string.Format("https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1}", _accountModel.AppId, refreshToken) : string.Format("https://api.weixin.qq.com/sns/oauth2/component/refresh_token?appid={0}&grant_type=refresh_token&component_appid={1}&component_access_token={2}&refresh_token={3}", _accountModel.AppId, _openAccountModel.AppId, _openAccountModel.GetAccessToken(), refreshToken); return(GetOAuthAccessTokenResult.CreateResult(WeiXinHttpHelper.GetString(url))); }
/// <summary> /// 获取访问票据。 /// </summary> /// <param name="code">公众平台Code参数。</param> /// <returns>结果模型。</returns> public GetOAuthAccessTokenResult GetAccessToken(string code) { var url = _openAccountModel != null?string.Format("https://api.weixin.qq.com/sns/oauth2/component/access_token?appid={0}&code={1}&grant_type=authorization_code&component_appid={2}&component_access_token={3}", _accountModel.AppId, code, _openAccountModel.AppId, _openAccountModel.GetAccessToken()) : string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", _accountModel.AppId, _accountModel.AppSecret, code); return(GetOAuthAccessTokenResult.CreateResult(WeiXinHttpHelper.GetString(url))); }