Esempio n. 1
0
        /// <summary>
        /// 公众号关注事件
        /// </summary>
        /// <param name="requestDoc"></param>
        /// <returns></returns>
        public async Task <ObjectResultModule> FocusOn(XDocument requestDoc)
        {
            SystemToken       systemToken  = new SystemToken();
            TencentUserManage usermanage   = new TencentUserManage();
            TencentWXPay      tencentWXPay = new TencentWXPay();

            using (var unitOfWork = _unitOfWorkManager.Begin())
            {
                try
                {
                    //关注
                    var openid = JsonHelper.GetXmlValue(requestDoc, "FromUserName");
                    if (openid == null)
                    {
                        return(new ObjectResultModule("", 401, ""));
                    }
                    // systemToken.TokenType = "Wechar";
                    var    Tokens       = _systemTokenService.SystemTokenList("Wechar").Result;
                    string access_token = Tokens.access_token;
                    var    usermsg      = usermanage.WeiXinUserInfoUtils(openid, Tokens.access_token).Result;
                    if (usermsg.subscribe != 0)
                    {
                        #region   步操作
                        //var UserInfo = _yaeherUserService.YaeherUserInfo(openid, Tokens.access_token);
                        //if (UserInfo.Id > 0)
                        //{
                        //    UserInfo= await usermanage.YaeherUserLable(usermsg,UserInfo,Tokens.access_token);
                        //    if (!UserInfo.IsPay)
                        //    {
                        //        var payment = await _yaeherUserPaymentService.YaeherUserPaymentByUserID(UserInfo.Id);
                        //        if (payment == null || payment.Id < 1)
                        //        {
                        //            //http请求微信信息,获取账户的信息 新增用户payment
                        //            var CreateUserPayment = new YaeherUserPayment()
                        //            {
                        //                UserID = UserInfo.Id,
                        //                FullName = UserInfo.FullName,
                        //                PayMethod = "wxpay",
                        //                PayMethodName = "微信支付",
                        //                PaymentAccout = UserInfo.WecharName,
                        //                BankName = "wx",
                        //                Subbranch = "wx",
                        //                BandAdd = "wx",
                        //                BankNo = "wx",
                        //                CreatedOn = DateTime.Now,
                        //                IsDefault = true,
                        //            };
                        //            CreateUserPayment = await _yaeherUserPaymentService.CreateYaeherUserPayment(CreateUserPayment);
                        //        }
                        //        UserInfo.IsPay = true;
                        //    }
                        //    if (!UserInfo.IsUpdate)
                        //    {
                        //        var DoctorInfo = await _yaeherDoctorService.YaeherDoctorByUserID(UserInfo.Id);
                        //        if (DoctorInfo != null && DoctorInfo.IsSharing && UserInfo.IsProfitSharing == false)   //医生角色切没有生成分账账号
                        //        {
                        //            //查询分账配置
                        //            SystemConfigsIn systemConfigsIn = new SystemConfigsIn();
                        //            systemConfigsIn.AndAlso(a => a.IsDelete == false);
                        //            systemConfigsIn.AndAlso(a => a.SystemType == "TencentWechar");
                        //            var configs = _systemConfigsService.SystemConfigsList(systemConfigsIn).Result;
                        //            // 查询医生信息
                        //            var tencentparam = configs.ToList().FirstOrDefault();
                        //            var receiver = new receiver();
                        //            receiver.name = DoctorInfo.DoctorName;
                        //            receiver.type = "PERSONAL_OPENID";
                        //            receiver.account = openid;
                        //            var addresult = tencentWXPay.ProfitSharingAddReceiver(receiver, tencentparam).Result;
                        //            if (addresult.result_code == "SUCCESS")  //插入成功后更新状态
                        //            {
                        //                UserInfo.IsProfitSharing = true;
                        //            }
                        //        }
                        //    }
                        //    UserInfo = await _yaeherUserService.UpdateYaeherUser(UserInfo);
                        //}
                        #endregion
                        string OperType = "用户关注";
                        var    UserInfo = await _yaeherUserService.YaeherUserInfo(usermsg, access_token, OperType);
                    }
                    StringBuilder Contentsb = new StringBuilder();
                    // 增加问医生
                    Contentsb.Append("欢迎关注怡禾健康!");
                    Contentsb.Append("\n");
                    Contentsb.Append("\n");
                    // 增加问医生
                    Contentsb.Append("<a href=\"" + Commons.WecharWeb + "?link=index-patient\">问医生</a>\n");
                    // 增加听课程
                    Contentsb.Append("\n");
                    Contentsb.Append("<a href=\"https://m.qlchat.com/wechat/page/live/210000155031160\">听课程</a>\n");
                    var textSingleMessage = new TextSingleMessage()
                    {
                        ToUser      = openid,
                        TextContent = Contentsb.ToString() == null ? "欢迎关注怡禾健康!" : Contentsb.ToString()
                    };
                    textSingleMessage.Send(access_token).ToString();
                    unitOfWork.Complete();
                }
                catch (Exception ex)
                {
                    Logger.Info("我的一个关注的错误:" + ex.ToString() + "DateTime:" + DateTime.Now);
                }
            }
            return(new ObjectResultModule("", 200, ""));
        }
Esempio n. 2
0
 public YaeherUser YaeherUserInfoNew(String UserOpenID, string access_token)
 {
     try
     {
         using (var unitOfWork = _unitOfWorkManager.Begin())
         {
             TencentUserManage usermanage   = new TencentUserManage();
             TencentWXPay      tencentWXPay = new TencentWXPay();
             // 通过Openid查询是否存在用户
             var UserInfo = _repository.GetAll().Where(a => a.WecharOpenID == UserOpenID && a.IsDelete == false).FirstOrDefault();
             // 获取标签参数
             var        paramlist = _SystemParameterrepository.GetAll().Where(a => a.IsDelete == false && a.SystemCode == "WXRole").ToListAsync().Result;
             List <Tag> tags      = new List <Tag>();
             if (paramlist != null)
             {
                 foreach (var tagItem in paramlist)
                 {
                     var Tag = JsonHelper.FromJson <Tag>(tagItem.ItemValue);
                     tags.Add(Tag);
                 }
             }
             // 通过OpenId获取用户微信信息
             var usermsg = usermanage.WeiXinUserInfoUtils(UserOpenID, access_token).Result;
             // 当OpenID查询无用户时   未关注的用户不做任何处理
             if (usermsg.subscribe != 0)
             {
                 if (UserInfo == null)
                 {
                     // 通过昵称判断是否存在 不存在则新增用户  增加返回标签判断
                     int WecharLable = 0;
                     if (usermsg.tagid_list != null && usermsg.tagid_list.Count > 0)
                     {
                         // 当用户存在多标签时,查询是否是医生标签
                         int DoctorLableId = tags.Where(a => a.name == "doctor").FirstOrDefault().id;
                         if (usermsg.tagid_list.Exists(a => a == DoctorLableId))
                         {
                             WecharLable = DoctorLableId;
                         }
                         else
                         {
                             WecharLable = usermsg.tagid_list[0];
                         }
                     }
                     // 通过昵称匹配到的历史数据
                     if (WecharLable != 0)
                     {
                         UserInfo = _repository.GetAll().Where(a => a.NickName == usermsg.nickname && a.WecharLableId == WecharLable && a.IsDelete == false).FirstOrDefault();
                     }
                     if (UserInfo == null)
                     {
                         string FullName = "YH" + DateTime.Now.ToString("yyyyMMdd") + new RandomCode().GenerateCheckCode(5);
                         var    newuser  = new YaeherUser();
                         newuser.WecharOpenID  = UserOpenID;
                         newuser.UserImage     = usermsg.headimgurl;
                         newuser.WecharName    = FullName;
                         newuser.FullName      = FullName;
                         newuser.Sex           = usermsg.sex;
                         newuser.RoleName      = "patient";
                         newuser.Userorigin    = "WXGZH"; //微信公众号
                         newuser.Enabled       = true;    // 默认激活
                         newuser.WecharLable   = "patient";
                         newuser.LoginName     = FullName;
                         newuser.NickName      = usermsg.nickname;
                         newuser.WecharLableId = tags.Where(a => a.name == "patient").FirstOrDefault().id; // 将咨询者的标签赋值   //JsonHelper.FromJson<Tag>(Lableparmlist.ItemValue).id;
                         //newuser.WeCharUserJson = JsonHelper.ToJson(usermsg);
                         newuser.CreatedOn       = DateTime.Now;
                         newuser.LoginPwd        = Commons.DefaultPassword; // 默认增加密码
                         newuser.IsLabel         = true;
                         newuser.IsPay           = false;
                         newuser.IsUpdate        = false;
                         newuser.IsProfitSharing = false;
                         newuser.Id = _repository.InsertAndGetIdAsync(newuser).Id;
                         UserInfo   = newuser;
                     }
                     else
                     {
                         if (UserInfo.WecharOpenID != UserOpenID)
                         {
                             UserInfo.IsUpdate     = true;
                             UserInfo.OpenID       = "将现有科技注册数据转换:" + UserInfo.WecharOpenID; //将历史的OpenID存储起来
                             UserInfo.WecharOpenID = UserOpenID;                             // 重新给新的OpenID
                         }
                         if (UserInfo.RoleName != "doctor")
                         {
                             UserInfo.UserImage = usermsg.headimgurl;
                         }
                         UserInfo.NickName = usermsg.nickname;
                         UserInfo          = _repository.Update(UserInfo);
                     }
                 }
                 else
                 {
                     if (UserInfo.WecharOpenID != UserOpenID)
                     {
                         UserInfo.IsUpdate     = true;
                         UserInfo.OpenID       = "将现有科技注册数据转换:" + UserInfo.WecharOpenID; //将历史的OpenID存储起来
                         UserInfo.WecharOpenID = UserOpenID;                             // 重新给新的OpenID
                     }
                     if (UserInfo.RoleName != "doctor")
                     {
                         UserInfo.UserImage = usermsg.headimgurl;
                     }
                     UserInfo.NickName = usermsg.nickname;
                     UserInfo          = _repository.Update(UserInfo);
                 }
             }
             unitOfWork.Complete();
             return(UserInfo);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 3
0
        public async Task <YaeherUser> YaeherUserInfo(TencentFocusUser usermsg, string access_token, String OperType)
        {
            string UserOpenID = usermsg.openid;

            try
            {
                using (var unitOfWork = _unitOfWorkManager.Begin())
                {
                    TencentUserManage usermanage   = new TencentUserManage();
                    TencentWXPay      tencentWXPay = new TencentWXPay();
                    // 通过Openid查询是否存在用户
                    var UserInfo = await _repository.FirstOrDefaultAsync(a => a.WecharOpenID == usermsg.openid && a.IsDelete == false);

                    // 获取标签参数
                    var paramlist = await _SystemParameterrepository.GetAllListAsync(a => a.IsDelete == false && a.SystemCode == "WXRole");

                    // var paramlist = await _SystemParameterrepository.GetAll().Where(a => a.IsDelete == false && a.SystemCode == "WXRole").ToListAsync();
                    List <Tag> tags = new List <Tag>();
                    if (paramlist != null)
                    {
                        foreach (var tagItem in paramlist)
                        {
                            var Tag = JsonHelper.FromJson <Tag>(tagItem.ItemValue);
                            tags.Add(Tag);
                        }
                    }
                    //  取消获取用户微信信息
                    //var usermsg =await usermanage.WeiXinUserInfoUtils(UserOpenID, access_token);
                    bool IsHistory = false;
                    // 当OpenID查询无用户时   未关注的用户不做任何处理
                    if (usermsg.subscribe != 0)
                    {
                        #region 去掉昵称检查
                        //if (UserInfo == null)
                        //{
                        //    通过昵称判断是否存在 不存在则新增用户  增加返回标签判断
                        //    int WecharLable = 0;
                        //    if (usermsg.tagid_list != null && usermsg.tagid_list.Count > 0)
                        //    {
                        //        // 当用户存在多标签时,查询是否是医生标签
                        //        int DoctorLableId = tags.Where(a => a.name == "doctor").FirstOrDefault().id;
                        //        if (usermsg.tagid_list.Exists(a => a == DoctorLableId))
                        //        {
                        //            WecharLable = DoctorLableId;
                        //        }
                        //        else
                        //        {
                        //            WecharLable = usermsg.tagid_list[0];
                        //        }
                        //    }
                        //    通过昵称匹配到的历史数据
                        //    if (WecharLable != 0)
                        //    {
                        //        UserInfo = _repository.GetAll().Where(a => a.NickName == usermsg.nickname && a.WecharLableId == WecharLable && a.IsDelete == false).FirstOrDefault();
                        //    }
                        //}
                        #endregion
                        if (UserInfo == null)
                        {
                            string FullName = "YH" + DateTime.Now.ToString("yyyyMMdd") + new RandomCode().GenerateCheckCode(5);
                            var    newuser  = new YaeherUser();
                            newuser.WecharOpenID  = UserOpenID;
                            newuser.UserImage     = usermsg.headimgurl;
                            newuser.WecharName    = usermsg.nickname;
                            newuser.FullName      = usermsg.nickname;
                            newuser.Sex           = usermsg.sex;
                            newuser.RoleName      = "patient";
                            newuser.Userorigin    = "WXGZH"; //微信公众号
                            newuser.Enabled       = true;    // 默认激活
                            newuser.WecharLable   = "patient";
                            newuser.LoginName     = FullName;
                            newuser.NickName      = usermsg.nickname;
                            newuser.WecharLableId = tags.Where(a => a.name == "patient").FirstOrDefault().id; // 将咨询者的标签赋值   //JsonHelper.FromJson<Tag>(Lableparmlist.ItemValue).id;
                            // newuser.WeCharUserJson = JsonHelper.ToJson(usermsg);
                            newuser.CreatedOn       = DateTime.Now;
                            newuser.LoginPwd        = Commons.DefaultPassword; // 默认增加密码
                            newuser.IsLabel         = true;
                            newuser.IsPay           = false;
                            newuser.IsUpdate        = false;
                            newuser.IsProfitSharing = false;
                            newuser.Id = await _repository.InsertAndGetIdAsync(newuser);

                            UserInfo = newuser;
                        }
                        else
                        {
                            IsHistory         = true; // 如果查询有数据则设置为true
                            UserInfo.IsUpdate = false;
                        }
                        if (!UserInfo.IsPay)
                        {
                            var payment = await _YaeherUserPaymentrepository.FirstOrDefaultAsync(a => a.IsDelete == false && a.UserID == UserInfo.Id);

                            if (payment == null || payment.Id < 1)
                            {
                                //http请求微信信息,获取账户的信息 新增用户payment
                                var CreateUserPayment = new YaeherUserPayment()
                                {
                                    UserID        = UserInfo.Id,
                                    FullName      = UserInfo.FullName,
                                    PayMethod     = "wxpay",
                                    PayMethodName = "微信支付",
                                    PaymentAccout = UserInfo.WecharName,
                                    BankName      = "wx",
                                    Subbranch     = "wx",
                                    BandAdd       = "wx",
                                    BankNo        = "wx",
                                    CreatedOn     = DateTime.Now,
                                    IsDefault     = true,
                                };
                                await _YaeherUserPaymentrepository.InsertAsync(CreateUserPayment);
                            }
                            UserInfo.IsPay = true;
                        }
                        if (!UserInfo.IsUpdate)
                        {
                            // 通过昵称获取的用户信息 去更新历史OpenID
                            if (IsHistory)
                            {
                                UserInfo.OpenID       = "将现有科技注册数据转换:" + UserInfo.WecharOpenID; //将历史的OpenID存储起来
                                UserInfo.WecharOpenID = UserOpenID;                             // 重新给新的OpenID
                            }
                            if (UserInfo.RoleName != "doctor")
                            {
                                UserInfo.UserImage = usermsg.headimgurl;
                            }
                            UserInfo.IsUpdate = true;
                            //当用户为医生时查询分账信息
                            if (UserInfo.RoleName == "doctor")
                            {
                                var DoctorInfo = await _doctorrepository.FirstOrDefaultAsync(a => a.IsDelete == false && a.UserID == UserInfo.Id);

                                if (DoctorInfo != null && DoctorInfo.IsSharing && UserInfo.IsProfitSharing == false)   //医生角色切没有生成分账账号
                                {
                                    //查询分账配置
                                    var configs = await _SystemConfigsrepository.GetAll().Where(a => a.IsDelete == false && a.SystemType == "TencentWechar").ToListAsync();

                                    // 查询医生信息
                                    var tencentparam = configs.FirstOrDefault();
                                    var receiver     = new receiver();
                                    receiver.name    = DoctorInfo.DoctorName;
                                    receiver.type    = "PERSONAL_OPENID";
                                    receiver.account = UserOpenID;
                                    var addresult = await tencentWXPay.ProfitSharingAddReceiver(receiver, tencentparam);

                                    if (addresult.result_code == "SUCCESS")  //插入成功后更新状态
                                    {
                                        UserInfo.IsProfitSharing = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (UserInfo.RoleName != "doctor")
                            {
                                UserInfo.UserImage = usermsg.headimgurl;
                            }
                            UserInfo.IsUpdate = true;
                        }
                        await usermanage.YaeherUserLable(usermsg, UserInfo, access_token);

                        // 将用户信息更新
                        if (!UserInfo.IsLabel)
                        {
                            UserInfo.IsLabel = true;
                        }
                        UserInfo.NickName   = usermsg.nickname;
                        UserInfo.WecharName = usermsg.nickname;
                        UserInfo.FullName   = usermsg.nickname;
                        UserInfo.ModifyOn   = DateTime.Now;
                        UserInfo.ModifyBy   = UserInfo.Id;
                        UserInfo            = await _repository.UpdateAsync(UserInfo);

                        #region 增加有效用户访问记录  暂时取消有效访问量
                        //YaeherOperList yaeherOperList = new YaeherOperList();
                        //yaeherOperList.CreatedOn = DateTime.Now;
                        //yaeherOperList.OperExplain = "UserInfo:" + UserOpenID;
                        //yaeherOperList.OperContent = JsonHelper.ToJson(UserInfo);
                        //yaeherOperList.OperType = OperType;
                        //await _YaeherOperListrepository.InsertAsync(yaeherOperList);
                        #endregion
                    }
                    unitOfWork.Complete();
                    return(UserInfo);
                }
            }
            catch (Exception ex)
            {
                #region 增加异常记录信息
                YaeherOperList yaeherOperList = new YaeherOperList();
                yaeherOperList.CreatedOn   = DateTime.Now;
                yaeherOperList.OperExplain = "UserInfo:" + UserOpenID;
                yaeherOperList.OperContent = "error:" + ex.ToString();
                yaeherOperList.OperType    = "用户操作错误:" + OperType;
                await _YaeherOperListrepository.InsertAsync(yaeherOperList);

                #endregion
                throw ex;
            }
        }
Esempio n. 4
0
        public async Task <ActionResult> PayNotifyJob([FromBody] YaeherConsultationAdd yaeherConsultationAdd)
        {
            if (!Commons.CheckSecret(yaeherConsultationAdd.Secret))
            {
                this.ObjectResultModule.StatusCode = 422;
                this.ObjectResultModule.Message    = "Wrong Secret";
                this.ObjectResultModule.Object     = "";
                Logger.Info("secret 错误!");
                return(Content("", "text/xml"));
            }
            string       xml = "";
            TencentWXPay OrdertencentWXPay  = new TencentWXPay();
            TencentWXPay RefundtencentWXPay = new TencentWXPay();

            string message         = "";
            string WXPayBillno     = "";
            string WXTransactionId = "";
            string WXOrderQuery    = "";

            WXPayBillno = yaeherConsultationAdd.sp_billno;
            var secret = await CreateSecret();

            //患者端咨询单
            var consul = await _consultationService.YaeherConsultationByNumber(yaeherConsultationAdd.ConsultNumber);

            //if (consul.ConsultState != "unpaid"&&consul.ConsultState != "created") { return Content(xml, "text/xml"); }
            //新增处理中条件判断
            if (consul.ConsultState != "unpaid" && consul.ConsultState != "processing")
            {
                return(Content(xml, "text/xml"));
            }
            //配置文件查询
            var Content1      = "{\"SystemType\":\"TencentWechar\",\"secret\":\"" + secret + "\"}";
            var tencentmparam = await this.PostResponseAsync(Commons.AdminIp + "api/SystemConfigsList/", Content1);

            var tencentmparamlist = JsonHelper.FromJson <APIResult <ResultModule <List <SystemConfigs> > > >(tencentmparam);

            if (tencentmparamlist == null || tencentmparamlist.result.item == null)
            {
                return(Content("", "text/xml"));
            }
            var tencentparam = tencentmparamlist.result.item.FirstOrDefault();

            //医生端医生信息查询
            Content1 = "{\"Id\":" + consul.DoctorID + ",\"secret\":\"" + secret + "\"}";
            var doctoruser = await this.PostResponseAsync(Commons.AdminIp + "api/DoctorInformation", Content1);

            var doctorUserResult = JsonHelper.FromJson <APIResult <ResultModule <YaeherDoctorInfo> > >(doctoruser);

            if (doctorUserResult == null || doctorUserResult.result.item == null)
            {
                return(Content("", "text/xml"));
            }
            var ServiceResult = doctorUserResult.result.item.ServiceMoneyLists.Find(t => t.Id == consul.ServiceMoneyListId);
            var queryresult   = await OrdertencentWXPay.OrderQueryAsync(WXPayBillno, tencentparam);

            if (ServiceResult == null || ServiceResult.Id < 1 || ServiceResult.ServiceState == false)
            {
                message = "医生该服务已下线,资金会原路返回您的账户,请稍后!";
            }
            if (queryresult.trade_state != "SUCCESS")
            {
                return(Content(queryresult.trade_state, "text/xml"));
            }
            #region 重复支付处理
            //if (consul.ConsultState == "created")
            //{
            //    var ordertradeold = await _orderTradeRecordService.OrderTradeRecordByConsultNumber(consul.ConsultNumber);
            //    if (ordertradeold != null && ordertradeold.WXPayBillno != WXPayBillno)
            //    {
            //        message = "您的支付已经收到,请不要重复支付,程序正在处理,请稍后!";
            //    }
            //}
            #endregion
            var YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.IsDefault);
            if (YaeherUserPaymentResult == null)
            {
                YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.PayMethod == "wxpay");
            }

            if (string.IsNullOrEmpty(message))
            {
                //患者端满单查询
                OrderTradeRecordIn refundManageIn = new OrderTradeRecordIn();
                var StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
                refundManageIn.DoctorId  = consul.DoctorID;
                refundManageIn.ServiceID = consul.ServiceMoneyListId;
                refundManageIn.AndAlso(t => t.IsDelete == false);
                refundManageIn.AndAlso(t => t.PayMoney > 0);
                refundManageIn.AndAlso(t => t.CreatedOn >= StartTime);
                refundManageIn.AndAlso(t => t.CreatedOn < StartTime.AddDays(1));

                var ordertradelist = await _orderTradeRecordService.PatientOrderTradeRecordList(refundManageIn);

                var allconsultation = ordertradelist.Count();
                if (ServiceResult.ServiceFrequency <= allconsultation)
                {
                    message = "医生该服务已满单,资金会原路返回您的账户,请稍后!";
                }

                if (!string.IsNullOrEmpty(yaeherConsultationAdd.sp_billno))
                {
                    if (queryresult.result_code != "SUCCESS")
                    {
                        return(Content("查询支付信息失败,请重新提交!", "text/xml"));
                    }

                    if (int.Parse(queryresult.total_fee) != (int)(ServiceResult.ServiceExpense * 100))
                    {
                        message = "医生该服务已修改价格,资金会原路返回您的账户,请稍后!";
                    }
                }
            }
            if (!string.IsNullOrEmpty(message))
            {
                string outTradeNo      = WXPayBillno;
                string outRefundNo     = consul.ConsultNumber + "-" + DateTime.Now.ToString("yyyMMddhhmmss");
                var    totalFee        = int.Parse(queryresult.total_fee);//单位:分
                int    refundFee       = totalFee;
                var    refundpayresult = await RefundtencentWXPay.RefundAsync(outTradeNo, outRefundNo, totalFee, refundFee, tencentparam, message);

                consul.ConsultState = "unpaid";
                await _consultationService.UpdateYaeherConsultation(consul);

                if (refundpayresult.code != "SUCCESS")
                {
                    Logger.Info("outTradeNo:" + outTradeNo + "outRefundNo:" + outRefundNo + "totalFee:" + totalFee + "refundFee:" + refundFee + "message:" + message + "+refundpayresult:" + JsonHelper.ToJson(refundpayresult));

                    HangfireScheduleJob job         = new HangfireScheduleJob();
                    RefundModel         refundModel = new RefundModel();
                    refundModel.Secret = await CreateSecret();

                    refundModel.outTradeNo  = outTradeNo;
                    refundModel.outRefundNo = outRefundNo;
                    refundModel.totalFee    = totalFee;
                    refundModel.refundFee   = refundFee;
                    refundModel.msg         = message;
                    JobModel model = new JobModel();
                    model.CallbackUrl     = Commons.AdminIp + "api/RefundAsync";
                    model.CallbackContent = JsonHelper.ToJson(refundModel);

                    job.Enqueue(model);

                    return(Content("退款支付失败,请联系管理员!", "text/xml"));
                    //return new ObjectResultModule("", 400, "退款支付失败,请联系管理员");
                }
                return(Content(message, "text/xml"));
            }

            WXTransactionId = queryresult.transaction_id;
            WXOrderQuery    = JsonHelper.ToJson(queryresult);

            Content1 = "{\"SystemCode\":\"SystemOverTime\",\"secret\":\"" + secret + "\"}";
            var replymparam = await this.PostResponseAsync(Commons.AdminIp + "api/YaeherMobileParameterList/", Content1);

            var replylistparam = JsonHelper.FromJson <APIResult <ResultModule <List <SystemParameter> > > >(replymparam);
            if (replylistparam == null || replylistparam.result.item == null)
            {
                return(Content("", "text/xml"));
            }

            Consultation consultation         = new Consultation();
            Publishs     Consultationpublishs = new Publishs();
            using (var unitOfWork = _unitOfWorkManager.Begin())
            {
                consul.ConsultState = "created";
                consul.Overtime     = DateTime.Now.AddDays(double.Parse(replylistparam.result.item[0].ItemValue));
                var result = await _consultationService.UpdateYaeherConsultation(consul);

                var OrderManage = new OrderManage();
                OrderManage.SequenceNo        = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6);
                OrderManage.OrderNumber       = "ON-" + DateTime.Now.ToString("yyyyMMddhhmm") + new RandomCode().RamdomRecode(4);
                OrderManage.ConsultNumber     = result.ConsultNumber;
                OrderManage.ConsultID         = result.Id;
                OrderManage.ConsultType       = ServiceResult.ServiceType;
                OrderManage.ConsultantID      = consul.CreatedBy;
                OrderManage.ConsultantName    = result.ConsultantName;
                OrderManage.PatientID         = result.PatientID;
                OrderManage.PatientName       = result.PatientName;
                OrderManage.DoctorID          = consul.DoctorID;
                OrderManage.DoctorName        = doctorUserResult.result.item.DoctorInfo.DoctorName;
                OrderManage.OrderCurrency     = "rmb";
                OrderManage.OrderMoney        = Convert.ToDecimal(ServiceResult.ServiceExpense);
                OrderManage.ReceivablesType   = YaeherUserPaymentResult.PayMethod;                      //医生收款类型
                OrderManage.ReceivablesNumber = YaeherUserPaymentResult.PaymentAccout;                  //医生收款账号
                OrderManage.ServiceID         = ServiceResult.Id;                                       //产品ID
                OrderManage.ServiceName       = ServiceResult.DoctorName + ServiceResult.ServiceType;   //产品名称
                OrderManage.SellerMoneyID     = doctorUserResult.result.item.WxPayBusinessId.ItemValue; //微信支付分配的商户号
                OrderManage.TradeType         = ServiceResult.ServiceType;                              //交易类型
                OrderManage.CreatedBy         = consul.CreatedBy;
                OrderManage.CreatedOn         = DateTime.Now;
                var result1 = await _orderManageService.CreateOrderManage(OrderManage);

                var record = new OrderTradeRecord()
                {
                    SequenceNo        = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6),
                    OrderID           = result1.Id,
                    OrderNumber       = result1.OrderNumber,
                    PayType           = "wxpay",
                    OrderCurrency     = "rmb",
                    TenpayNumber      = "", //支付账号
                    VoucherNumber     = "", //代金券编号
                    VoucherJSON       = "", //代金券Json
                    PayMoney          = Convert.ToDecimal(ServiceResult.ServiceExpense),
                    PaymentState      = "paid",
                    PaymentSourceCode = "order",
                    PaymentSource     = "订单",
                    WXPayBillno       = WXPayBillno,
                    WXTransactionId   = WXTransactionId,
                    WXOrderQuery      = WXOrderQuery,
                    CreatedBy         = consul.CreatedBy,
                    CreatedOn         = DateTime.Now
                };
                var result2 = await _orderTradeRecordService.CreateOrderTradeRecord(record);

                #region  发布咨询 消息接受者为医生  DoctorNotice AddConsultation
                // 发布咨询
                consultation.yaeherConsultation    = result;                    // 咨询主表
                consultation.orderManage           = result1;                   // 订单管理表
                consultation.orderTradeRecords     = result2;                   // 交易记录表
                Consultationpublishs.TemplateCode  = "DoctorNotice";
                Consultationpublishs.OperationType = "AddConsultation";         // 新增咨询
                Consultationpublishs.MessageRemark = result.IIInessDescription; // 发起咨询
                Consultationpublishs.Publisher     = "Patient";
                Consultationpublishs.PublishUrl    = "Patient";
                Consultationpublishs.EventName     = "发布 新增咨询";
                Consultationpublishs.EventCode     = "Consultation";
                Consultationpublishs.BusinessID    = result.Id.ToString();
                Consultationpublishs.BusinessCode  = result.ConsultNumber;
                Consultationpublishs.BusinessJSON  = JsonHelper.ToJson(consultation);
                Consultationpublishs.PublishedTime = result.CreatedOn;
                Consultationpublishs.PublishStatus = true;
                Consultationpublishs.CreatedBy     = consul.CreatedBy;
                Consultationpublishs.CreatedOn     = DateTime.Now;
                Consultationpublishs.Secret        = secret;

                Consultationpublishs.ServerClient = "Client";
                try
                {
                    var ConsultationResult = await _publishsService.CreatePublishs(Consultationpublishs);
                }
                catch (Exception ex)
                {
                    YaeherOperList yaeherOperList = new YaeherOperList();
                    yaeherOperList.CreatedOn   = DateTime.Now;
                    yaeherOperList.OperExplain = "Message:" + ex.Message.ToString();
                    yaeherOperList.OperContent = "StackTrace:" + ex.StackTrace.ToString();
                    yaeherOperList.OperType    = "支付回调";
                    await _YaeherOperListrepository.PatientYaeherOperList(yaeherOperList);

                    throw ex;
                }
                #endregion
                unitOfWork.Complete();
            }
            var ConsultationParma = await this.PostResponseAsync(Commons.DoctorIp + "api/ConsultationManage/", JsonHelper.ToJson(Consultationpublishs));

            // var ConsultationJson = JsonHelper.FromJson<APIResult<ResultModule<Publishs>>>(ConsultationParma);

            return(Content("success", "text/xml"));
        }