示例#1
0
        /// <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));
        }
示例#2
0
        /// <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));
        }
示例#3
0
        /// <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()));
        }
示例#4
0
        /// <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());
        }
示例#5
0
        /// <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());
        }
示例#7
0
        /// <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));
        }
示例#8
0
        /// <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());
        }
示例#9
0
        /// <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());
        }
示例#10
0
        /// <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);
        }
示例#11
0
 /// <summary>
 /// 删除所有自定义菜单。
 /// </summary>
 public void DeleteAll()
 {
     WeiXinHttpHelper.GetString("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" +
                                _accountModel.GetAccessToken());
 }
示例#12
0
        /// <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)));
        }
示例#13
0
        /// <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)));
        }