예제 #1
0
        /// <summary>
        /// 获取AccessToken
        /// </summary>
        /// <returns></returns>
        private static AccessTokenInfo GetAccessToken()
        {
            DateTime _now = DateTime.Now;

            //有效时间到 从新获取AccessToken
            if (_accessToken == null || _now >= _expTime)
            {
                IMpClient             mpClient = new MpClient();
                AccessTokenGetRequest request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new DefAppIdInfo()
                };
                AccessTokenGetResponse response = mpClient.Execute(request);
                if (response.IsError)
                {
                    Logger.WriteTxtLog(string.Format("获取AccessToken发生错误,错误编码为:{0},错误消息为:{1}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg));
                    _accessToken = null;
                    return(null);
                }
                _accessToken = response.AccessToken;
                _expTime     = _now.AddSeconds(_accessToken.ExpiresIn - 10);
                Logger.WriteTxtLog(string.Format("获取到AccessToken,值为:{0},有效期:{1}秒", response.AccessToken.AccessToken, response.AccessToken.ExpiresIn));
            }
            return(_accessToken);
        }
예제 #2
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 获取关注者列表测试
        /// </summary>
        public static void GetAttentionsTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetAttentionsRequest request2 = new GetAttentionsRequest()
            {
                AccessToken = response.AccessToken.AccessToken
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("获取关注者列表失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("获取关注者列表成功");
                Console.WriteLine(Tools.ToJsonString(response2.Attentions));
            }
        }
예제 #3
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
        /// <summary>
        /// 取得菜单
        /// </summary>
        /// <returns></returns>
        public static List <Button> GetMenu()
        {
            //取得菜单信息
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }
            else
            {
                GetMenuRequest getRequest = new GetMenuRequest()
                {
                    AccessToken = response.AccessToken.AccessToken
                };
                var getResponse = mpClient.Execute(getRequest);
                if (getResponse.IsError)
                {
                    return(null);
                }
                else
                {
                    var m = getResponse.Menu.menu.button;
                    return(m);
                }
            }
        }
예제 #4
0
        /// <summary>
        /// 获取微信接口凭证AccessToken
        /// </summary>
        /// <returns></returns>
        public string GetAccessToken(string keyValue = "")
        {
            string                accessToken = string.Empty;
            string                _appId      = WeixinConfig.Instance.AppId;
            string                appSecret   = WeixinConfig.Instance.AppSecret;
            IMpClient             mpClient    = new MpClient();
            AccessTokenGetRequest request     = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = _appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return("0");
            }
            accessToken = response.AccessToken.AccessToken;
            int timestampNow = ConvertDateTimeInt(DateTime.Now);

            accessTokenBLL.SaveForm(keyValue, new AccessTokenEntity {
                Id         = keyValue,
                ModifyDate = DateTime.Now,
                Timestamp  = timestampNow,
                Token      = accessToken
            });
            return(accessToken);
        }
예제 #5
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
 /// <summary>
 /// 处理图片消息
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="args"></param>
 /// <returns></returns>
 public bool ProcessImageMessage(ImageReceiveMessage msg, params object[] args)
 {
     try
     {
         // string token = args[0].ToString();
         string                token    = "";
         IMpClient             mpClient = new MpClient();
         AccessTokenGetRequest request  = new AccessTokenGetRequest()
         {
             AppIdInfo = new AppIdInfo()
             {
                 AppID = appId, AppSecret = appSecret
             }
         };
         AccessTokenGetResponse response = mpClient.Execute(request);
         if (response.IsError)
         {
             //这里回应1条文本消息,当然您也可以回应其他消息
             MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
             return(true);
         }
         else
         {
             token = response.AccessToken.AccessToken;
             //这里回复一个图片,当然您也可以回复其他类型的消息
             return(MessageHandler.SendImageReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.jpg"));
         }
     }
     catch (Exception ex)
     {
         //这里回应1条文本消息,当然您也可以回应其他消息
         MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "出错了:" + ex.ToString());
         return(true);
     }
 }
예제 #6
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="OpenId">用户OpenId</param>
        /// <returns></returns>
        public static User GetUserInfo(string OpenId)
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            GetUserInfoRequest request2 = new GetUserInfoRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                OpenId      = OpenId,
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                return(null);
            }
            else
            {
                return(response2.UserInfo);
            }
        }
예제 #7
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 发送视频客服信息
        /// </summary>
        public static void SendVideoCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendVideoCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "美好的视屏", "视频描述", "d:\\2771cae7-8756-4dd4-8491-976589ab17cc.mp4");

            response2 = MessageHandler.SendVideoCustomMessage(response.AccessToken.AccessToken, "oSFK4twW7yL_vR0ya3jYpT-H19lY", "视频客服信息", "视频客服信息描述", "d:\\2771cae7-8756-4dd4-8491-976589ab17cc.mp4");



            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
예제 #8
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 发送音乐客服消息测试
        /// </summary>
        public static void SendMusicCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            //var response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "音乐标题", "音乐描述","","" "d:\\UP.jpg");

            var response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "音乐标题", "音乐描述", "http://wx.011011.com/baba.mp3", "http://wx.011011.com/baba.mp3", "d:\\UP.jpg");

            response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twW7yL_vR0ya3jYpT-H19lY", "音乐标题", "音乐描述", "http://wx.011011.com/baba.mp3", "http://wx.011011.com/baba.mp3", "d:\\UP.jpg");



            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
예제 #9
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 发送语音客服信息测试
        /// </summary>
        public static void SendVoiceCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendVoiceCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "d:\\11.mp3");

            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
예제 #10
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 发送文本客服信息测试
        /// </summary>
        public static void SendTextCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendTextCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "文本客服消息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
예제 #11
0
        /// <summary>
        /// 回复数据
        /// </summary>
        void savePave()
        {
            string appId     = System.Configuration.ConfigurationManager.AppSettings["YHQAppId"].Trim();
            string appSecret = System.Configuration.ConfigurationManager.AppSettings["YHQAppSecret"].Trim();
            string openid    = Utils.GetQueryStringValue("openid");
            string getMsg    = Utils.GetFormValue("txtMsg");

            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("位置错误..");
                return;
            }
            var response2 = MessageHandler.SendTextCustomMessage(response.AccessToken.AccessToken, openid, getMsg);

            Response.Clear();
            if (response2.IsError)
            {
                Response.Write(UtilsCommons.AjaxReturnJson("0", "发送失败"));
            }
            else
            {
                Response.Write(UtilsCommons.AjaxReturnJson("1", "发送成功"));
            }
            Response.End();
        }
예제 #12
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 获取用户分组ID测试
        /// </summary>
        public static void GetUserGroupIdTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetUserGroupRequest request2 = new GetUserGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                UserId      = "oSFK4t4xIdeddd4wpxXaUmtKKpMA"
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("查询用户分组ID失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("查询用户分组ID成功,分组ID为:" + response2.GroupId);
            }
        }
예제 #13
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
        /// <summary>
        /// 处理语音消息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public bool ProcessVoiceMessage(VoiceReceiveMessage msg, params object[] args)
        {
            string                token    = "";
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                //这里回应1条文本消息,当然您也可以回应其他消息
                MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
                return(true);
            }
            else
            {
                token = response.AccessToken.AccessToken;
                //这里回复1条语音消息,当然您也可以回复其他类型的信息
                return(MessageHandler.SendVoiceReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.mp3"));
            }
        }
예제 #14
0
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="openid"></param>
        private UserInfoR GetUserInfo(string openid)
        {
            if (string.IsNullOrEmpty(openid))
            {
                return(null);
            }
            StringBuilder         url      = new StringBuilder();
            IMpClient             mpClient = new MpClient();
            UserInfoR             userinfo = null;
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret")
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                userinfo            = new FJCWebApp.CommonClass.UserInfoR();
                userinfo.headimgurl = "/Content/Images/top.png";
                userinfo.province   = response.ErrInfo.ErrMsg;
                userinfo.city       = response.ErrInfo.ErrCode.ToString();
            }
            else
            {
                url.AppendFormat("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", response.AccessToken.AccessToken, openid);

                var client  = new HttpClient();
                var retJson = client.GetAsync(url.ToString()).Result.Content.ReadAsStringAsync().Result;

                try
                {
                    Business.Base_SysLogBll.Instance.WriteLog("", Business.OperationType.Query, "-1", retJson);
                    userinfo = JsonConvert.DeserializeObject <UserInfoR>(retJson);
                }
                catch (Exception ex)
                {
                    userinfo            = new FJCWebApp.CommonClass.UserInfoR();
                    userinfo.headimgurl = "/Content/Images/top.png";
                    userinfo.province   = ex.Message;
                    userinfo.city       = response.Body;
                }
            }

            return(userinfo);
        }
예제 #15
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 创建二维码测试
        /// </summary>
        public static void QrCodeCreateTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            QrCodeCreateMessage msg = new QrCodeCreateMessage()
            {
                SceneId        = 22,
                ExpireSeconds  = 1800,
                ActionName     = "QR_LIMIT_SCENE", //QR_SCENE为临时,QR_LIMIT_SCENE为永久
                LocalStoredDir = "D:\\"
            };

            QrCodeCreateRequest createRequest = new QrCodeCreateRequest()
            {
                AccessToken         = response.AccessToken.AccessToken,
                QrCodeCreateMessage = msg,
                SendData            = msg.ToJsonString()
            };

            var createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("创建二维码失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("创建二维码成功,二维码链接地址为:" + createResponse.QrCodeUrl + "本地存储路径为:" + createResponse.LocalFilePath);
            }
        }
예제 #16
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 修改分组测试
        /// </summary>
        public static void ModifyGroupTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            Group groupInfo = new Group()
            {
                id   = "101",
                name = "修改后的分组"
            };

            ModifyGroupRequest request2 = new ModifyGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                GroupInfo   = groupInfo,
                SendData    = groupInfo.ToModifyJsonString()
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("修改分组失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("修改分组信息成功");
                GetGroupsTest(); //查询一把,显示一下信息
            }
        }
예제 #17
0
        public string GetAccessToken(string oldAccessToken)
        {
            if (string.IsNullOrEmpty(mAccessToken) || mAccessTokenExpiredTime <= DateTime.Now || mAccessToken == oldAccessToken)
            {
                lock (mAccessTokenLocker)
                {
                    if (string.IsNullOrEmpty(mAccessToken) || mAccessTokenExpiredTime <= DateTime.Now || mAccessToken == oldAccessToken)
                    {
                        DateTime timenow = DateTime.Now;

                        IMpClient             mpClient = new MpClient();
                        AccessTokenGetRequest request  = new AccessTokenGetRequest()
                        {
                            AppIdInfo = new AppIdInfo()
                            {
                                AppID = mAppId, AppSecret = mAppSecret
                            }
                        };
                        AccessTokenGetResponse response = mpClient.Execute(request);
                        if (response.IsError)
                        {
                            string msg = string.Format("获取AccessToken失败。 Code:{0},Msg:{1},APPID:{2},Token:{3}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg, mAppId, mAppSecret);
                            LogHelper.WriteError(LogModule, msg, null);
                            if (response.ErrInfo.ErrCode == 45009)//reach max api daily quota limit
                            {
                                mAccessToken            = "00000000000";
                                mAccessTokenExpiredTime = DateTime.Today.AddDays(1);
                                return(mAccessToken);
                            }
                            throw new ApplicationException(msg);
                        }
                        else
                        {
                            mAccessToken            = response.AccessToken.AccessToken;
                            mAccessTokenExpiredTime = timenow.AddSeconds((long)(response.AccessToken.ExpiresIn * mAccessTokenCachePeriod));
                            LogHelper.WriteDebug(LogModule, "AccessToken:{0}, ExpiredTime:{1:yyyy-MM-dd HH:mm:ss}", mAccessToken, mAccessTokenExpiredTime);
                        }
                    }
                }
            }
            return(mAccessToken);
        }
예제 #18
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 获取AccessToken测试代码
        /// </summary>
        public static void GetAccessTokenTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取AccessToken发生错误,错误编码为:{0},错误消息为:{1}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("获取到AccessToken,值为:{0},有效期:{1}秒", response.AccessToken.AccessToken, response.AccessToken.ExpiresIn);
            }
        }
예제 #19
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 创建分组测试
        /// </summary>
        public static void CreateGroupTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            Group msg = new Group()
            {
                name = "分组一"
            };

            CreateGroupRequest createRequest = new CreateGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = msg.ToCreateJsonString()
            };

            var createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("创建分组失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("创建分组成功,分组ID为:" + createResponse.GroupInfo.id + ",分组名称为:" + createResponse.GroupInfo.name);
            }
        }
예제 #20
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 移动用户分组测试
        /// </summary>
        public static void SetUserGroupTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            SetUserGroupRequest request2 = new SetUserGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                UserId      = "oSFK4t4xIdeddd4wpxXaUmtKKpMA",
                ToGroupId   = "101"
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("移动用户分组失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("移动用户分组成功");
                GetGroupsTest(); //查询一把,显示一下信息
            }
        }
예제 #21
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 查询所有分组测试
        /// </summary>
        public static void GetGroupsTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetGroupsRequest createRequest = new GetGroupsRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
            };

            var createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("查询所有分组失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("查询分组信息成功,共有分组" + createResponse.Groups.groups.Count.ToString() + "个");
                JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
                string groups = jsonSerializer.Serialize(createResponse.Groups);
                Console.WriteLine(groups);
            }
        }
예제 #22
0
        /// <summary>
        /// 发送通知消息
        /// </summary>
        /// <param name="postData"></param>
        /// <returns></returns>
        public string SendTemplateMessage()
        {
            IMpClient mpClient = new MpClient();
            AppIdInfo app      = new AppIdInfo()
            {
                AppID     = AppId,
                AppSecret = AppSecret,
                CallBack  = ""
            };
            string message = "发送成功";
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = app
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (!response.IsError)
            {
                SendTemplateMessageRequest req = new SendTemplateMessageRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    SendData    = ToJsonString1(),
                    AppIdInfo   = app
                };
                SendTemplateMessageResponse res = mpClient.Execute(req);
                if (res.IsError)
                {
                    //记录日志
                    message = res.ErrInfo.ErrMsg;
                }
            }
            else
            {
                message = response.ErrInfo.ErrMsg;
            }
            return(message);
        }
예제 #23
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 查询菜单测试
        /// </summary>
        public static void GetMenuTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetMenuRequest getRequest = new GetMenuRequest()
            {
                AccessToken = response.AccessToken.AccessToken
            };

            var getResponse = mpClient.Execute(getRequest);

            if (getResponse.IsError)
            {
                Console.WriteLine("查询菜单发生错误,错误信息为:" + getResponse.ErrInfo.ErrCode + "-" + getResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("查询菜单成功");
                var m = getResponse.Menu;
                Console.WriteLine(m.ToJsonString());
            }
        }
예제 #24
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 删除菜单测试
        /// </summary>
        public static void DeleteMenuTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            DeleteMenuRequest getRequest = new DeleteMenuRequest()
            {
                AccessToken = response.AccessToken.AccessToken
            };

            var delResponse = mpClient.Execute(getRequest);

            if (delResponse.IsError)
            {
                Console.WriteLine("删除菜单失败,错误信息为:" + delResponse.ErrInfo.ErrCode + "-" + delResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("删除菜单成功");

                GetMenuTest(); //成功后查询一下
            }
        }
예제 #25
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 获取用户基本信息测试
        /// </summary>
        public static void GetUserInfoTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetUserInfoRequest request2 = new GetUserInfoRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                OpenId      = "oSFK4t4xIdeddd4wpxXaUmtKKpMA",
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("获取用户基本信息失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("获取用户信息成功");
                Console.WriteLine(Tools.ToJsonString(response2.UserInfo));
            }
        }
예제 #26
0
파일: Program.cs 프로젝트: ludycool/WeiXinF
        /// <summary>
        /// 创建菜单测试
        /// </summary>
        public static void CreateMenuTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            Menu menu = new Menu();

            List <Button> button = new List <Weixin.Mp.Sdk.Domain.Button>();

            Button subBtn1 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            Button subBtn2 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            Button subBtn3 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            List <Button> subBtnAll = new List <Button>();

            subBtnAll.Add(subBtn1);
            subBtnAll.Add(subBtn2);
            subBtnAll.Add(subBtn3);

            Button btn = new Button()
            {
                key        = "key3",
                name       = "联系",
                url        = "httpbig",
                type       = "click",
                sub_button = subBtnAll
            };

            button.Add(btn);

            btn = new Button()
            {
                key        = "key1",
                name       = "帮助",
                url        = "httpbig",
                type       = "click",
                sub_button = subBtnAll
            };
            button.Add(btn);

            btn = new Button()
            {
                key  = "key2",
                name = "关于",
                url  = "httpbig",
                type = "click",
                //sub_button = subBtnAll
            };
            button.Add(btn);

            menu.button = button;

            MenuGroup mg = new MenuGroup()
            {
                menu = menu
            };

            string postData = mg.ToJsonString();

            CreateMenuRequest createRequest = new CreateMenuRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = postData
            };

            CreateMenuResponse createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("创建菜单失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("创建菜单成功");
            }
        }
예제 #27
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
        /// <summary>
        /// 获取关注者列表
        /// </summary>
        /// <param name="AttentionsList">返回关注的列表</param>
        /// <param name="NextOpenId">超过一万时最后一个关注OPENID</param>
        /// <returns></returns>
        public static WeiXinResult GetAttentions(ref List <string> AttentionsList, string NextOpenId)
        {
            WeiXinResult          AttentionsResult = new WeiXinResult();
            IMpClient             mpClient         = new MpClient();
            AccessTokenGetRequest request          = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                AttentionsResult.IsResult  = false;
                AttentionsResult.ResultMsg = "获取令牌环失败";
                return(AttentionsResult);
            }
            string AccessToken            = response.AccessToken.AccessToken;
            GetAttentionsRequest request2 = new GetAttentionsRequest()
            {
                AccessToken = AccessToken,
                NextOpenId  = NextOpenId
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                AttentionsResult.IsResult  = false;
                AttentionsResult.ResultMsg = "获取关注者列表失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg;
                return(AttentionsResult);
            }
            else
            {
                var list = response2.Attentions;
                if (list.total > 0)
                {
                    if (list.data.openid.Count > 0)
                    {
                        AttentionsList.AddRange(list.data.openid);
                        if (list.total > 10000 && !String.IsNullOrEmpty(list.next_openid))//超过一万
                        {
                            return(GetAttentions(ref AttentionsList, list.next_openid));
                        }
                        else
                        {
                            // Adpost.Finawin.Utility.ConfigClass.SetConfigKeyValue("next_openid", list.next_openid);
                            AttentionsResult.IsResult  = true;
                            AttentionsResult.ResultMsg = "获取关注者列表成功";
                            return(AttentionsResult);
                        }
                    }
                    else
                    {
                        AttentionsResult.IsResult  = false;
                        AttentionsResult.ResultMsg = "无关注者数据";
                        return(AttentionsResult);
                    }
                }
                else
                {
                    AttentionsResult.IsResult  = false;
                    AttentionsResult.ResultMsg = "无关注者数据";
                    return(AttentionsResult);
                }
            }
        }
예제 #28
0
파일: WinXin.cs 프로젝트: ichoukou/yhq
        /// <summary>
        /// 创建菜单
        /// </summary>
        public static WeiXinResult CreateMenu()
        {
            WeiXinResult rv = new WeiXinResult {
                IsResult = false, ResultMsg = "系统错误!"
            };
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                rv.ResultMsg = "获取令牌环失败";
                return(rv);
            }
            else
            {
                Menu          menu   = new Menu();
                List <Button> button = new List <Weixin.Mp.Sdk.Domain.Button>();
                #region 菜单一 产品中心
                Button subBtn1 = new Button()
                {
                    key        = "guoneiyou",
                    name       = "国内游",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=0"
                };
                Button subBtn2 = new Button()
                {
                    key        = "guojiyou",
                    name       = "国际游",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=1"
                };
                Button subBtn3 = new Button()
                {
                    key        = "chanpintuijian",
                    name       = "产品推荐",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductList.aspx?tuijian=1"
                };
                Button subBtn4 = new Button()
                {
                    key        = "chanpinmachaxun",
                    name       = "产品码查询",
                    sub_button = null,
                    type       = "click",
                    url        = "http://www.4008005216.com/AppPage/weixin/Register.aspx"
                };

                Button subBtn5 = new Button()
                {
                    key        = "guoneijipiao",
                    name       = "国内机票",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/jp_Search.aspx"
                };
                List <Button> subBtnAll = new List <Button>();
                subBtnAll.Add(subBtn1);
                subBtnAll.Add(subBtn2);
                subBtnAll.Add(subBtn3);
                subBtnAll.Add(subBtn4);
                subBtnAll.Add(subBtn5);
                Button btn = new Button()
                {
                    key        = "menu1",
                    name       = "旅游超市",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll
                };
                button.Add(btn);

                #endregion
                #region 菜单二 会员中心
                Button Menu2SubBtn1 = new Button()
                {
                    key        = "dingdanguanli",
                    name       = "订单管理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/OrderList.aspx"
                };
                Button Menu2SubBtn2 = new Button()
                {
                    key        = "zhanghuguanli",
                    name       = "账户管理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/updateUser.aspx"
                };
                Button Menu2SubBtn3 = new Button()
                {
                    key        = "yuyue",
                    name       = "预约办理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/YuYue.aspx"
                };

                string _weidianurl = "https://open.weixin.qq.com/connect/oauth2/authorize?";
                _weidianurl += "appid=" + appId;
                _weidianurl += "&redirect_uri=http://www.4008005216.com/WeiXin/oauth2_authorize.aspx";
                _weidianurl += "&response_type=code";
                _weidianurl += "&scope=snsapi_base";
                _weidianurl += "&state=weidian_snsapi_base";
                _weidianurl += "#wechat_redirect";

                Button Menu2SubBtn4 = new Button()
                {
                    key        = "wodeweidian",
                    name       = "我的微店",
                    sub_button = null,
                    type       = "view",
                    url        = _weidianurl
                };
                Button Menu2SubBtn5 = new Button()
                {
                    key        = "fenxiang",
                    name       = "最新分享",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/HuiYuanWeiXin/TuWenFenXiang.aspx"
                };
                List <Button> subBtnAll2 = new List <Button>();
                subBtnAll2.Add(Menu2SubBtn1);
                subBtnAll2.Add(Menu2SubBtn2);
                subBtnAll2.Add(Menu2SubBtn3);
                subBtnAll2.Add(Menu2SubBtn4);
                subBtnAll2.Add(Menu2SubBtn5);

                btn = new Button()
                {
                    key        = "huiyuanzhongxin",
                    name       = "会员中心",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll2
                };
                button.Add(btn);

                #endregion
                #region 菜单三 惠旅游
                Button Menu3SubBtn1 = new Button()
                {
                    key        = "aboutus",
                    name       = "关于我们",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/AboutUs.aspx"
                };
                Button Menu3SubBtn2 = new Button()
                {
                    key        = "appdown",
                    name       = "APP下载",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/DownApp.aspx"
                };
                Button Menu3SubBtn3 = new Button()
                {
                    key        = "recommend",
                    name       = "客服反馈",
                    sub_button = null,
                    type       = "click",
                    url        = "http://www.4008005216.com/AppPage/weixin/Recommend.aspx"
                };

                Button Menu3SubBtn4 = new Button()
                {
                    key        = "weimingpian",
                    name       = "我的频道",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/huiyuanweixin/mingpian.aspx"
                };

                Button Menu3SubBtn5 = new Button()
                {
                    key        = "lvyouguwen",
                    name       = "旅游顾问",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/huiyuanweixin/lvyouguwen.aspx"
                };

                List <Button> subBtnAll3 = new List <Button>();
                subBtnAll3.Add(Menu3SubBtn1);
                subBtnAll3.Add(Menu3SubBtn2);
                subBtnAll3.Add(Menu3SubBtn3);

                subBtnAll3.Add(Menu3SubBtn4);
                subBtnAll3.Add(Menu3SubBtn5);

                btn = new Button()
                {
                    key        = "menu3",
                    name       = "旅游频道",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll3
                };
                button.Add(btn);
                #endregion
                menu.button = button;
                MenuGroup mg = new MenuGroup()
                {
                    menu = menu
                };
                string            postData      = mg.ToJsonString();
                CreateMenuRequest createRequest = new CreateMenuRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    SendData    = postData
                };
                CreateMenuResponse createResponse = mpClient.Execute(createRequest);
                if (createResponse.IsError)
                {
                    rv.ResultMsg = "创建菜单失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg;
                    return(rv);
                }
                else
                {
                    rv.IsResult  = true;
                    rv.ResultMsg = "创建成功";
                    return(rv);
                }
            }
        }
예제 #29
0
파일: Service1.cs 프로젝트: gxlbang/yoga
        /// <summary>
        /// 后台抄表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ReadingHandleTimerTimerEvent(object sender, System.Timers.ElapsedEventArgs e)
        {
            ReadingHandleTimer.Stop();
            var taskList = database.FindList <Am_BackstageTask>(" and Status=0");

            foreach (var item in taskList)
            {
                var result = GetResult(item.Number);
                var root   = JsonHelper.JonsToList <Root>(result);
                if (root != null)
                {
                    if (root.Count == 1)
                    {
                        var example = root[0];
                        item.TaskMark = "[主动查询]" + result;
                        if (example.status == "SUCCESS")
                        {
                            item.Status    = 1;
                            item.StatusStr = "成功";
                            if (example.data != null)
                            {
                                item.Remark = example.data[0].dsp;
                            }

                            item.OverTime = DateTime.Parse(example.resolve_time);
                        }
                        else if (example.status == "FAIL")
                        {
                            item.Status    = 2;
                            item.StatusStr = "失败";
                            item.OverTime  = DateTime.Parse(example.resolve_time);
                        }
                        else if (example.status == "NOTSUPPORT")
                        {
                            item.Status    = 2;
                            item.StatusStr = "不支持此功能";
                            item.OverTime  = DateTime.Parse(example.resolve_time);
                        }
                        else if (example.status == "TIMEOUT")
                        {
                            item.Status    = 2;
                            item.StatusStr = "超时";
                            item.OverTime  = DateTime.Parse(example.resolve_time);
                        }
                        else if (example.status == "ACCEPTED")
                        {
                            item.StatusStr = "请求已接受";
                        }
                        else if (example.status == "QUEUE")
                        {
                            item.StatusStr = "调度状态";
                        }
                        else if (example.status == "PROCESSING")
                        {
                            item.StatusStr = "正在处理中";
                        }
                        database.Update <Am_BackstageTask>(item);
                    }
                }
                if (item.Status > 0 && item.Status < 4)
                {
                    var log = DbHelper.GetLog(item.Number);
                    if (log != null)
                    {
                        log.Result = item.StatusStr;
                        DbHelper.UpdateLog(log);
                    }
                    if (root.Count == 1)
                    {
                        var example = root[0];
                        if (example.data != null && example.data.Count > 0)
                        {
                            int type = example.data[0].type;
                            List <DbParameter> par = new List <DbParameter>();
                            par.Add(DbFactory.CreateDbParameter("@Number", item.AmmeterNumber));
                            var ammeter = database.FindEntityByWhere <Am_Ammeter>(" and Number =@Number ", par.ToArray());
                            //查询余额
                            if (type == 22)
                            {
                                if (ammeter != null && ammeter.Number != null)
                                {
                                    ammeter.CurrMoney = double.Parse(example.data[0].value[0].ToString());
                                    ammeter.CM_Time   = DateTime.Parse(example.resolve_time);
                                    ammeter.Acount_Id = null;
                                    if (ammeter.CurrMoney < ammeter.FirstAlarm && ammeter.IsLowerWarning == 1)
                                    {
                                        ammeter.IsLowerWarning = 2;
                                        //发微信通知
                                        IMpClient             mpClient = new MpClient();
                                        AccessTokenGetRequest request  = new AccessTokenGetRequest()
                                        {
                                            AppIdInfo = new AppIdInfo()
                                            {
                                                AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret")
                                            }
                                        };
                                        AccessTokenGetResponse response = mpClient.Execute(request);
                                        if (response.IsError)
                                        {
                                            this.WriteLog(response.ErrInfo.ErrMsg);
                                        }
                                        Weixin.Mp.Sdk.Domain.First first = new First();
                                        first.color = "#000000";
                                        first.value = ammeter.U_Name + ",您" + ammeter.Room + "号房电费不足";
                                        Weixin.Mp.Sdk.Domain.Keynote1 keynote1 = new Keynote1();
                                        keynote1.color = "#0000ff";
                                        keynote1.value = ammeter.CurrMoney.Value.ToString("0.00");
                                        Weixin.Mp.Sdk.Domain.Keynote2 keynote2 = new Keynote2();
                                        keynote2.color = "#0000ff";
                                        keynote2.value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                        Weixin.Mp.Sdk.Domain.Remark remark = new Remark();
                                        remark.color = "#464646";
                                        remark.value = "请及时充值,以免影响您正常用电!";
                                        Weixin.Mp.Sdk.Domain.Data data = new Data();
                                        data.first    = first;
                                        data.keynote1 = keynote1;
                                        data.keynote2 = keynote2;
                                        data.remark   = remark;
                                        Weixin.Mp.Sdk.Domain.Miniprogram miniprogram = new Miniprogram();
                                        miniprogram.appid    = "";
                                        miniprogram.pagepath = "";
                                        Weixin.Mp.Sdk.Domain.TemplateMessage templateMessage = new TemplateMessage();
                                        templateMessage.data        = data;
                                        templateMessage.miniprogram = miniprogram;
                                        templateMessage.template_id = "AaRgB6rFU6Z3kUbagN16Mp7DbT293yI8nuE96Xvoxdk";
                                        var usermodel = database.FindEntity <Ho_PartnerUser>(ammeter.U_Number);
                                        templateMessage.touser = usermodel.OpenId;
                                        templateMessage.url    = "http://am.zst0771.com/Personal/AmmeterRecharge?number=" + ammeter.Number;
                                        string postData = templateMessage.ToJsonString1(); /*JsonHelper.ToJson(templateMessage);*/

                                        AppIdInfo app = new AppIdInfo()
                                        {
                                            AppID     = ConfigHelper.AppSettings("WEPAY_WEB_APPID"),
                                            AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret"),
                                            CallBack  = ""
                                        };
                                        SendTemplateMessageRequest req = new SendTemplateMessageRequest()
                                        {
                                            AccessToken = response.AccessToken.AccessToken,
                                            SendData    = postData,
                                            AppIdInfo   = app
                                        };
                                        SendTemplateMessageResponse res = mpClient.Execute(req);
                                        if (res.IsError)
                                        {
                                            this.WriteLog(res.ErrInfo.ErrMsg);
                                        }
                                    }
                                    database.Update(ammeter);
                                }
                            }
                            //查询电量
                            if (type == 20)
                            {
                                if (ammeter != null && ammeter.Number != null)
                                {
                                    ammeter.CurrPower = decimal.Parse(example.data[0].value[0].ToString()).ToString("0.00");
                                    ammeter.CP_Time   = DateTime.Parse(example.resolve_time);
                                    DbHelper.UpdateAmmeter(ammeter);
                                }
                            }
                        }
                    }
                }
            }
            ReadingHandleTimer.Start();
        }
예제 #30
0
파일: Service1.cs 프로젝트: gxlbang/yoga
        /// <summary>
        /// 账单推送
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BillSendTimerdEvent(object sender, System.Timers.ElapsedEventArgs e)
        {
            BillSendTimer.Stop();
            var config = database.FindEntityByWhere <Fx_WebConfig>("");

            if (config != null && config.SendBillDate.Value > 0)
            {
                var time = DateTime.Now.AddDays(config.SendBillDate.Value);
                List <DbParameter> par = new List <DbParameter>();
                par.Add(DbFactory.CreateDbParameter("@time", time));
                par.Add(DbFactory.CreateDbParameter("@Status", "0"));

                var billList = database.FindList <Am_Bill>("  and  BeginTime<=@time and Status=@Status ", par.ToArray());
                foreach (var item in billList)
                {
                    item.Status    = 1;
                    item.StatusStr = "未支付";
                    item.SendTime  = DateTime.Now;
                    if (database.Update <Am_Bill>(item) > 0)
                    {
                        //账单推送
                        IMpClient             mpClient = new MpClient();
                        AccessTokenGetRequest request  = new AccessTokenGetRequest()
                        {
                            AppIdInfo = new AppIdInfo()
                            {
                                AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret")
                            }
                        };
                        AccessTokenGetResponse response = mpClient.Execute(request);
                        if (response.IsError)
                        {
                            continue;
                        }
                        Weixin.Mp.Sdk.Domain.First first = new First();
                        first.color = "#000000";
                        first.value = item.T_U_Name + ",您本月的账单已生成";
                        Weixin.Mp.Sdk.Domain.Keynote1 keynote1 = new Keynote1();
                        keynote1.color = "#0000ff";
                        keynote1.value = item.Address + " " + item.Cell + "单元" + item.Floor + "楼" + item.Room + "号";
                        Weixin.Mp.Sdk.Domain.Keynote2 keynote2 = new Keynote2();
                        keynote2.color = "#0000ff";
                        keynote2.value = item.BeginTime.Value.ToString("yyyy-MM-dd") + "至" + item.EndTime.Value.ToString("yyyy-MM-dd");
                        Weixin.Mp.Sdk.Domain.Keynote3 keynote3 = new Keynote3();
                        keynote3.color = "#0000ff";
                        keynote3.value = item.Money.Value.ToString("0.00");
                        //Weixin.Mp.Sdk.Domain.Keynote4 keynote4 = new Keynote4();
                        //keynote4.color = "#0000ff";
                        //keynote4.value = model.s_Reception + "  " + model.s_ReMobile;
                        Weixin.Mp.Sdk.Domain.Remark remark = new Remark();
                        remark.color = "#464646";
                        remark.value = "请在" + config.SendBillDate.Value.ToString() + "天之内在线支付账单!";
                        Weixin.Mp.Sdk.Domain.Data data = new Data();
                        data.first    = first;
                        data.keynote1 = keynote1;
                        data.keynote2 = keynote2;
                        data.keynote3 = keynote3;
                        //data.keynote4 = keynote4;
                        data.remark = remark;
                        Weixin.Mp.Sdk.Domain.Miniprogram miniprogram = new Miniprogram();
                        miniprogram.appid    = "";
                        miniprogram.pagepath = "";
                        Weixin.Mp.Sdk.Domain.TemplateMessage templateMessage = new TemplateMessage();
                        templateMessage.data        = data;
                        templateMessage.miniprogram = miniprogram;
                        templateMessage.template_id = "d0NDpmuQ7BjtlxPurNTr9N1GlATOAQ98S8vrmgAijH8";
                        var usermodel = database.FindEntity <Ho_PartnerUser>(item.T_U_Number);
                        templateMessage.touser = usermodel.OpenId;
                        templateMessage.url    = "http://am.zst0771.com/Personal/NewBillDetails?Number=" + item.Number;
                        string postData = templateMessage.ToJsonString1(); /*JsonHelper.ToJson(templateMessage);*/

                        AppIdInfo app = new AppIdInfo()
                        {
                            AppID     = ConfigHelper.AppSettings("WEPAY_WEB_APPID"),
                            AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret"),
                            CallBack  = ""
                        };
                        SendTemplateMessageRequest req = new SendTemplateMessageRequest()
                        {
                            AccessToken = response.AccessToken.AccessToken,
                            SendData    = postData,
                            AppIdInfo   = app
                        };
                        SendTemplateMessageResponse res = mpClient.Execute(req);
                        if (res.IsError)
                        {
                            continue;
                        }
                    }
                }
            }
            BillSendTimer.Start();
        }