浏览代码

添加好哒过审状态

DuGuYang 1 年之前
父节点
当前提交
c5b65f4aad

+ 1 - 0
Models/Main/MerchantAddInfo.cs

@@ -144,5 +144,6 @@ namespace MySystem.Models.Main
         public string OutMchtNo { get; set; }
         public string AliMerchantId { get; set; }
         public string WeChatMerchantId { get; set; }
+        public int HdStatus { get; set; }
     }
 }

+ 4 - 0
Models/Main/WebCMSEntities.cs

@@ -5421,6 +5421,10 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.HdStatus)
+                    .HasColumnType("int(11)")
+                    .HasComment("好哒进件状态");
+
                 entity.Property(e => e.HoldAgentProtocol)
                     .HasColumnName("holdAgentProtocol")
                     .HasColumnType("varchar(200)")

+ 13 - 13
Startup.cs

@@ -135,19 +135,19 @@ namespace MySystem
             });
 
             initMainServer();
-            // MerchantConfirmService.Instance.Start(); //提交商户进件
-            // CheckWeChatSignService.Instance.Start(); //查询商户审核状态
-            // ProfitShareService.Instance.Start(); //分账状态监控队列,分账完成则提交返现
-            // HaoDaExtHelper.Instance.StartWeChat();
-            // HaoDaExtHelper.Instance.StartAlipay();
-            // HaoDaExtQueryHelper.Instance.StartWeChat();
-            // HaoDaExtQueryHelper.Instance.StartAlipay();
-            // HaoDaAuthQueryHelper.Instance.Start(); //查询实名认证状态
-            // WeChatPayBackService.Instance.Start(); //支付回调
-            // WeChatPayBackService.Instance.StartProfitShare(); //分账队列
-            // ProfitHelper.Instance.StartListenTrade(); //返现队列-支付宝
-            // ProfitHelper.Instance.StartListenWxTrade(); //返现队列-微信
-            TestHaoDaService.Instance.Start(); //好哒测试
+            MerchantConfirmService.Instance.Start(); //提交商户进件
+            CheckWeChatSignService.Instance.Start(); //查询商户审核状态
+            ProfitShareService.Instance.Start(); //分账状态监控队列,分账完成则提交返现
+            HaoDaExtHelper.Instance.StartWeChat();
+            HaoDaExtHelper.Instance.StartAlipay();
+            HaoDaExtQueryHelper.Instance.StartWeChat();
+            HaoDaExtQueryHelper.Instance.StartAlipay();
+            HaoDaAuthQueryHelper.Instance.Start(); //查询实名认证状态
+            WeChatPayBackService.Instance.Start(); //支付回调
+            WeChatPayBackService.Instance.StartProfitShare(); //分账队列
+            ProfitHelper.Instance.StartListenTrade(); //返现队列-支付宝
+            ProfitHelper.Instance.StartListenWxTrade(); //返现队列-微信
+            // TestHaoDaService.Instance.Start(); //好哒测试
         }
 
         //初始化数据结构

+ 6 - 3
Util/HaoDa/CheckWeChatSignService.cs

@@ -29,7 +29,7 @@ namespace MySystem
                 string content = RedisDbconn.Instance.RPop<string>("WeChatSignHdQueue");
                 if (!string.IsNullOrEmpty(content))
                 {
-                    if(content == "sleep")
+                    if (content == "sleep")
                     {
                         RedisDbconn.Instance.AddList("WeChatSignHdQueue", "sleep");
                         Thread.Sleep(60000);
@@ -70,6 +70,7 @@ namespace MySystem
                     {
                         // merchantadd.Status = 1;
                         merchantadd.StoreNo = dic["data"]["storeNo"].ToString();
+                        merchantadd.HdStatus = 1; //0 待审核 1 已通过 2 已开通分账 3 已添加接收方
                         merchantadd.OutMchtNo = dic["data"]["outMchtNo"].ToString();
                         MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == mId);
                         if (merchant != null)
@@ -88,6 +89,7 @@ namespace MySystem
                         if (Info["resultCode"].ToString() == "1")
                         {
                             merchantadd.OpenAct = 1;//是否开通分账(1 是 0 否)
+                            merchantadd.HdStatus = 2; //0 待审核 1 已通过 2 已开通分账 3 已添加接收方
                             //分账接收方签约
                             JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.DivideAccountsSign(AppConfig.Haoda.AcctNo, merchantadd.OutMchtNo, merchantadd.StoreNo));
                             //失败
@@ -98,6 +100,7 @@ namespace MySystem
                             //成功
                             else
                             {
+                                merchantadd.HdStatus = 3; //0 待审核 1 已通过 2 已开通分账 3 已添加接收方
                                 if (!string.IsNullOrEmpty(merchantadd.ToAcctNo))
                                 {
                                     if (!merchantadd.ToAcctNo.Contains("," + AppConfig.Haoda.AcctNo + ","))
@@ -121,8 +124,8 @@ namespace MySystem
                         db.SaveChanges();
 
                         //开户意愿申请
-                        RedisDbconn.Instance.AddList("AlipayForHaoDaQueue",mId);
-                        RedisDbconn.Instance.AddList("WeChatForHaoDaQueue",mId);
+                        RedisDbconn.Instance.AddList("AlipayForHaoDaQueue", mId);
+                        RedisDbconn.Instance.AddList("WeChatForHaoDaQueue", mId);
 
                     }
                 }

+ 83 - 67
Util/HaoDa/MerchantConfirmService.cs

@@ -53,92 +53,108 @@ namespace MySystem
             Models.Main1.WebCMSEntities db1 = new Models.Main1.WebCMSEntities();
             MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
             MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId);
-            if (AddInfo != null && merchant != null)
+            if (AddInfo.HdStatus >= 1)
             {
-                string BusinessCode = AddInfo.BusinessCode;
-                if (string.IsNullOrEmpty(BusinessCode))
+                //开户意愿申请
+                if (AddInfo.Status == -1 && merchant.Status == -1)
                 {
-                    BusinessCode = "LKB" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(5);
-                    AddInfo.BusinessCode = BusinessCode;
+                    RedisDbconn.Instance.AddList("AlipayForHaoDaQueue", AddInfo.Id);
                 }
-                string pwd = AddInfo.MobilePhone.Substring(5);
-                merchant.LoginPwd = function.MD532(pwd);
-                MerchantParamSet query = db.MerchantParamSet.FirstOrDefault(m => m.Id == MerchantId);
-                if (query == null)
+                if (AddInfo.QueryCount == -1 && merchant.QueryCount == -1)
                 {
-                    query = new MerchantParamSet();
-                    query.IsAll = 1;
-                    db.MerchantParamSet.Add(query);
-                    db.SaveChanges();
+                    RedisDbconn.Instance.AddList("WeChatForHaoDaQueue", AddInfo.Id);
                 }
-                MerchantForMobile merchantForMobile = db.MerchantForMobile.FirstOrDefault(m => m.Mobile == AddInfo.MobilePhone);
-                if (merchantForMobile == null)
+            }
+            else
+            {
+                if (AddInfo != null && merchant != null)
                 {
-                    merchantForMobile = db.MerchantForMobile.Add(new MerchantForMobile()
+                    string BusinessCode = AddInfo.BusinessCode;
+                    if (string.IsNullOrEmpty(BusinessCode))
                     {
-                        Mobile = AddInfo.MobilePhone,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                merchantForMobile.MerchantId = MerchantId;
-                db.SaveChanges();
-                Models.Main1.MerchantLoginInfo info = db1.MerchantLoginInfo.FirstOrDefault(m => m.LoginMobile == AddInfo.MobilePhone);
-                if (info == null)
-                {
-                    info = db1.MerchantLoginInfo.Add(new Models.Main1.MerchantLoginInfo()
+                        BusinessCode = "LKB" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(5);
+                        AddInfo.BusinessCode = BusinessCode;
+                    }
+                    string pwd = AddInfo.MobilePhone.Substring(5);
+                    merchant.LoginPwd = function.MD532(pwd);
+                    MerchantParamSet query = db.MerchantParamSet.FirstOrDefault(m => m.Id == MerchantId);
+                    if (query == null)
                     {
-                        LoginMobile = AddInfo.MobilePhone,
-                    }).Entity;
-                    db1.SaveChanges();
-                }
-                info.LoginPwd = function.MD532(pwd);
-                db1.SaveChanges();
-                Models.Main1.MerchantAccountLinkInfo infolink = db1.MerchantAccountLinkInfo.FirstOrDefault(m => m.LoginId == info.Id && m.MerchantId == MerchantId && m.Kind == 2);
-                if (infolink == null)
-                {
-                    infolink = db1.MerchantAccountLinkInfo.Add(new Models.Main1.MerchantAccountLinkInfo()
+                        query = new MerchantParamSet();
+                        query.IsAll = 1;
+                        db.MerchantParamSet.Add(query);
+                        db.SaveChanges();
+                    }
+                    MerchantForMobile merchantForMobile = db.MerchantForMobile.FirstOrDefault(m => m.Mobile == AddInfo.MobilePhone);
+                    if (merchantForMobile == null)
+                    {
+                        merchantForMobile = db.MerchantForMobile.Add(new MerchantForMobile()
+                        {
+                            Mobile = AddInfo.MobilePhone,
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    merchantForMobile.MerchantId = MerchantId;
+                    db.SaveChanges();
+                    Models.Main1.MerchantLoginInfo info = db1.MerchantLoginInfo.FirstOrDefault(m => m.LoginMobile == AddInfo.MobilePhone);
+                    if (info == null)
                     {
-                        LoginId = info.Id,
-                        MerchantId = MerchantId,
-                        Kind = 2,
-                    }).Entity;
+                        info = db1.MerchantLoginInfo.Add(new Models.Main1.MerchantLoginInfo()
+                        {
+                            LoginMobile = AddInfo.MobilePhone,
+                        }).Entity;
+                        db1.SaveChanges();
+                    }
+                    info.LoginPwd = function.MD532(pwd);
                     db1.SaveChanges();
-                }
-                if (AddInfo.Status <= 0)
-                {
-                    //好哒新建商户
-                    string result = HaoDaHelper.Instance.AddNewMerchant(AddNewMerchantSetUtil.SetValue(AddInfo));
-                    JsonData jsonObj = JsonMapper.ToObject(result);
-                    //创建成功
-                    if (jsonObj["resultCode"].ToString() == "1")
+                    Models.Main1.MerchantAccountLinkInfo infolink = db1.MerchantAccountLinkInfo.FirstOrDefault(m => m.LoginId == info.Id && m.MerchantId == MerchantId && m.Kind == 2);
+                    if (infolink == null)
                     {
-                        AddInfo.WeChatRemark = "";
-                        if (string.IsNullOrEmpty(AddInfo.MchtNo))
+                        infolink = db1.MerchantAccountLinkInfo.Add(new Models.Main1.MerchantAccountLinkInfo()
                         {
-                            AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
-                        }
-                        AddInfo.Status = 0;
-                        merchant.Status = 0;
-                        db.SaveChanges();
-                        QueryMerchantStatus queryMerchantStatus = new QueryMerchantStatus();
-                        queryMerchantStatus.MerchantId = MerchantId.ToString();
-                        queryMerchantStatus.MerchantNo = AddInfo.MchtNo;
-                        RedisDbconn.Instance.AddList("WeChatSignHdQueue", queryMerchantStatus);
+                            LoginId = info.Id,
+                            MerchantId = MerchantId,
+                            Kind = 2,
+                        }).Entity;
+                        db1.SaveChanges();
                     }
-                    //创建失败
-                    else
+                    if (AddInfo.Status <= 0)
                     {
-                        AddInfo.Status = -1;
-                        merchant.Status = -1;
-                        AddInfo.WeChatRemark = jsonObj["errorDesc"].ToString();
-                        if (string.IsNullOrEmpty(AddInfo.MchtNo))
+                        //好哒新建商户
+                        string result = HaoDaHelper.Instance.AddNewMerchant(AddNewMerchantSetUtil.SetValue(AddInfo));
+                        JsonData jsonObj = JsonMapper.ToObject(result);
+                        //创建成功
+                        if (jsonObj["resultCode"].ToString() == "1")
                         {
-                            if (jsonObj.ToJson().Contains("mchtNo"))
+                            AddInfo.WeChatRemark = "";
+                            if (string.IsNullOrEmpty(AddInfo.MchtNo))
                             {
                                 AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
                             }
+                            AddInfo.Status = 0;
+                            AddInfo.HdStatus = 0; //0 待审核 1 已通过 2 已开通分账 3 已添加接收方
+                            merchant.Status = 0;
+                            db.SaveChanges();
+                            QueryMerchantStatus queryMerchantStatus = new QueryMerchantStatus();
+                            queryMerchantStatus.MerchantId = MerchantId.ToString();
+                            queryMerchantStatus.MerchantNo = AddInfo.MchtNo;
+                            RedisDbconn.Instance.AddList("WeChatSignHdQueue", queryMerchantStatus);
+                        }
+                        //创建失败
+                        else
+                        {
+                            AddInfo.Status = -1;
+                            merchant.Status = -1;
+                            AddInfo.WeChatRemark = jsonObj["errorDesc"].ToString();
+                            // if (string.IsNullOrEmpty(AddInfo.MchtNo))
+                            // {
+                            //     if (jsonObj.ToJson().Contains("mchtNo"))
+                            //     {
+                            //         AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
+                            //     }
+                            // }
+                            db.SaveChanges();
                         }
-                        db.SaveChanges();
                     }
                 }
             }

+ 38 - 0
Util/HaoDa/TestHaoDaService.cs

@@ -59,6 +59,15 @@ namespace MySystem
                 MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
                 string result = AlipayFunctionForHD.Instance.AuthOrderCreate(info, info.AlipayAuthToken);
                 JsonData jsonObj = JsonMapper.ToObject(result);
+
+                Dictionary<string, object> reqdic = new Dictionary<string, object>();
+                reqdic.Add("Id", Id); // 商户Id
+                string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+                LogHelper.Instance.WriteLog(req, "提交支付宝商户意愿申请单");
+                Dictionary<string, string> headdic = HaoDaHelper.Instance.GetHeader(req);
+                string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+                LogHelper.Instance.WriteLog("请求参数\n" + req, "提交支付宝商户意愿申请单");
+
                 LogHelper.Instance.WriteLog(result, "提交支付宝商户意愿申请单");
                 if (jsonObj["alipay_merchant_indirect_authorder_create_response"]["code"].ToString() == "10000")
                 {
@@ -95,6 +104,16 @@ namespace MySystem
                 MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
                 string result = AlipayFunctionForHD.Instance.AuthOrderQuery(OrderNo);
                 JsonData jsonObj = JsonMapper.ToObject(result);
+
+                Dictionary<string, object> reqdic = new Dictionary<string, object>();
+                reqdic.Add("Id", Id); // 商户Id
+                reqdic.Add("OrderNo", OrderNo); // 商户Id
+                string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+                LogHelper.Instance.WriteLog(req, "查询支付宝商户意愿申请状态");
+                Dictionary<string, string> headdic = HaoDaHelper.Instance.GetHeader(req);
+                string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+                LogHelper.Instance.WriteLog("请求参数\n" + req, "查询支付宝商户意愿申请状态");
+
                 LogHelper.Instance.WriteLog(result, "查询支付宝商户意愿申请状态");
                 if (jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["code"].ToString() == "10000")
                 {
@@ -161,6 +180,15 @@ namespace MySystem
                 WebCMSEntities db = new WebCMSEntities();
                 MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
                 string result = WeChatFunctionForHD.Instance.MerchantApply(info);
+
+                Dictionary<string, object> reqdic = new Dictionary<string, object>();
+                reqdic.Add("Id", Id); // 商户Id
+                string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+                LogHelper.Instance.WriteLog(req, "提交微信商户意愿申请单");
+                Dictionary<string, string> headdic = HaoDaHelper.Instance.GetHeader(req);
+                string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+                LogHelper.Instance.WriteLog("请求参数\n" + req, "提交微信商户意愿申请单");
+
                 LogHelper.Instance.WriteLog(result, "提交微信商户意愿申请单");
                 if (result.Contains("\"applyment_id\":"))
                 {
@@ -197,6 +225,16 @@ namespace MySystem
                 WebCMSEntities db = new WebCMSEntities();
                 MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
                 string result = WeChatFunctionForHD.Instance.QueryMerchant(ApplymentId);
+                
+                Dictionary<string, object> reqdic = new Dictionary<string, object>();
+                reqdic.Add("Id", Id); // 商户Id
+                reqdic.Add("ApplymentId", ApplymentId); // 商户Id
+                string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+                LogHelper.Instance.WriteLog(req, "提交微信商户意愿申请单");
+                Dictionary<string, string> headdic = HaoDaHelper.Instance.GetHeader(req);
+                string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+                LogHelper.Instance.WriteLog("请求参数\n" + req, "提交微信商户意愿申请单");
+
                 JsonData jsonObj = JsonMapper.ToObject(result);
                 if (jsonObj["applyment_state"].ToString() == "APPLYMENT_STATE_WAITTING_FOR_CONFIRM_CONTACT")
                 {