DuGuYang 1 year ago
parent
commit
a4742f069b

+ 1 - 1
Entity/HaoDa/AddNewMerchant.cs

@@ -14,7 +14,7 @@ namespace MySystem
         public string accountName { get; set; }//开户名(账户名称)
         public string accountType { get; set; }//账户类型 1 对私 0 对公
         public string zbankNo { get; set; }//开户银行支行号 参考支行号表(联系对接人提供)
-        public string zbankName = "四川省农村信用社联合社";//开户银行支行号 参考支行号表(联系对接人提供)
+        // public string zbankName = "四川省农村信用社联合社";//开户银行支行号 参考支行号表(联系对接人提供)
         public string zbankRegionCode { get; set; }//开户银行支行区域码 参考区域码表(联系对接人提供)
         public string openBankAccName { get; set; }//开户许可证-开户名 企业商户必填(个体工商户对私不填)
         public string openBankAccout { get; set; }//开户许可证-银行卡号 企业商户必填(个体工商户对私不填)

+ 1 - 1
Entity/HaoDa/AddOpenDivideAccounts.cs

@@ -12,7 +12,7 @@ namespace MySystem
         public string userType { get; set; } //必须 用户类型 1-企业,2-个人
         public string userName { get; set; } //必须 用户名,个人填写身份证姓名,企业填写法人姓名
         public string mobile { get; set; } //非必须 手机号
-        public string compName { get; set; } //企业必须 企业名称
+        public string compNm { get; set; } //企业必须 企业名称
         public string legalCertType { get; set; } //必须 法人证明类型 1身份证 2护照 3港澳台居民通行证(废弃不用)4外国人永久居留证 5香港来往内地通行证 6澳门来往内地通行证 7台湾同胞来往内地通行证
         public string userCardNo { get; set; } //必须 身份证号
         public string userCardStartDate { get; set; } //必须 法人证件开始日期

+ 4 - 0
Models/Main/MerchantAddInfo.cs

@@ -138,5 +138,9 @@ namespace MySystem.Models.Main
         public string LicenceType { get; set; }
         public string ResserveMobile { get; set; }
         public string MchtNo { get; set; }
+        public string ToAcctNo { get; set; }
+        public int OpenAct { get; set; }
+        public string StoreNo { get; set; }
+        public string OutMchtNo { get; set; }
     }
 }

+ 22 - 0
Models/Main/WebCMSEntities.cs

@@ -5464,6 +5464,10 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.OpenAct)
+                    .HasColumnType("int(11)")
+                    .HasComment("是否开通分账");
+
                 entity.Property(e => e.OpenBankAccName)
                     .HasColumnType("varchar(50)")
                     .HasComment("开户许可证-开户名")
@@ -5520,6 +5524,12 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.OutMchtNo)
+                    .HasColumnType("varchar(100)")
+                    .HasComment("慧掌柜商户号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
                 entity.Property(e => e.Owner)
                     .HasColumnType("bit(1)")
                     .HasDefaultValueSql("b'0'");
@@ -5624,6 +5634,12 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.StoreNo)
+                    .HasColumnType("varchar(100)")
+                    .HasComment("门店号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
                 entity.Property(e => e.SubCorpId)
                     .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
@@ -5659,6 +5675,12 @@ namespace MySystem.Models.Main
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.ToAcctNo)
+                    .HasColumnType("varchar(100)")
+                    .HasComment("分账接收方")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
                 entity.Property(e => e.UboInfoIdCardCopy)
                     .HasColumnType("varchar(200)")
                     .HasCharSet("utf8")

+ 1 - 1
Startup.cs

@@ -132,7 +132,7 @@ namespace MySystem
             initMainServer();
             MerchantConfirmService.Instance.Start(); //提交商户进件
             CheckWeChatSignService.Instance.Start(); //查询商户审核状态
-            TestOpenDivideAccountsService.Instance.Start(); //添加分账接收方账户
+            // TestOpenDivideAccountsService.Instance.Start(); //测试
         }
 
         //初始化数据结构

+ 23 - 30
Util/HaoDa/AddNewMerchantSetUtil.cs

@@ -19,8 +19,6 @@ namespace MySystem
         public static AddNewMerchant SetValue(MerchantAddInfo AddInfo)
         {
             AddNewMerchant addNewMerchant = new AddNewMerchant();
-            // addNewMerchant.brh = "001040"; //机构号(测试)
-            // addNewMerchant.brh = "030145"; //机构号(正式)
             addNewMerchant.brh = HaoDaHelper.BrhCode; //机构号(正式)
             if (!string.IsNullOrEmpty(AddInfo.MchtNo))
             {
@@ -38,21 +36,15 @@ namespace MySystem
             addNewMerchant.accountType = AddInfo.AccountType; //账户类型 1 对私 0 对公
             addNewMerchant.zbankNo = AddInfo.ZbankNo; //开户银行支行号 参考支行号表(联系对接人提供)
             addNewMerchant.zbankRegionCode = AddInfo.ZbankRegionCode; //开户银行支行区域码 参考区域码表(联系对接人提供)
-            // if (AddInfo.SubjectType == "0")
-            // {
-            //     addNewMerchant.openBankAccName = AddInfo.OpenBankAccName; //开户许可证-开户名 企业商户必填(个体工商户对私不填)
-            //     addNewMerchant.openBankAccout = AddInfo.OpenBankAccout; //开户许可证-银行卡号 企业商户必填(个体工商户对私不填)
-            //     addNewMerchant.openBankRegionCode = AddInfo.OpenBankRegionCode; //开户许可证-银行地区码 企业商户必填(个体工商户对私不填)
-            //     addNewMerchant.openCollectBankCode = AddInfo.OpenCollectBankCode; //开户许可证-银行代码 企业商户必填(个体工商户对私不填)
-            //     addNewMerchant.openUnionNo = AddInfo.OpenUnionNo; //开户许可证-开户支行 企业商户必填(个体工商户对私不填)
-            // }
-
-            addNewMerchant.openBankAccName = AddInfo.OpenBankAccName; //开户许可证-开户名 企业商户必填(个体工商户对私不填)
-            addNewMerchant.openBankAccout = AddInfo.AccountNumber; //开户许可证-银行卡号 企业商户必填(个体工商户对私不填)
-            addNewMerchant.openBankRegionCode = AddInfo.OpenBankRegionCode; //开户许可证-银行地区码 企业商户必填(个体工商户对私不填)
-            addNewMerchant.openCollectBankCode = AddInfo.OpenCollectBankCode; //开户许可证-银行代码 企业商户必填(个体工商户对私不填)
-            addNewMerchant.openUnionNo = AddInfo.OpenUnionNo; //开户许可证-开户支行 企业商户必填(个体工商户对私不填)
 
+            if (AddInfo.AccountType == "0")
+            {
+                addNewMerchant.openBankAccName = AddInfo.OpenBankAccName; //开户许可证-开户名 企业商户必填(个体工商户对私不填)
+                addNewMerchant.openBankAccout = AddInfo.AccountNumber; //开户许可证-银行卡号 企业商户必填(个体工商户对私不填)
+                addNewMerchant.openBankRegionCode = AddInfo.OpenBankRegionCode; //开户许可证-银行地区码(地区码) 企业商户必填(个体工商户对私不填)
+                addNewMerchant.openCollectBankCode = AddInfo.OpenCollectBankCode; //开户许可证-银行代码(总行行号) 企业商户必填(个体工商户对私不填)
+                addNewMerchant.openUnionNo = AddInfo.OpenUnionNo; //开户许可证-开户支行 企业商户必填(个体工商户对私不填)
+            }
             addNewMerchant.channelKind = AddInfo.ChannelKind; //商户类型 有执照填000002无执照填000001
             addNewMerchant.mchtName = AddInfo.CertMerchantName; //商户名称 无营业执照商户命名规则:商户_姓名 有营业执照商户命名规则:与营业执照商户名一致
             addNewMerchant.mchtCnShortName = AddInfo.MerchantShortname; //商户简称
@@ -62,7 +54,10 @@ namespace MySystem
             addNewMerchant.unionPayRate = "0.38"; //银联二维码费率,值0.38,0.33等
             addNewMerchant.areaNo = AddInfo.AreaNo; //经营地区区域码 参考区域码表,填6位地区码(联系对接人提供)
             addNewMerchant.businessId = AddInfo.BusinessId; //经营范围 参考经营范围表(联系对接人提供)
-            addNewMerchant.licNo = AddInfo.LicenseNumber; //营业执照号 有营业执照必填
+            if (!string.IsNullOrEmpty(AddInfo.LicenseNumber))
+            {
+                addNewMerchant.licNo = AddInfo.LicenseNumber; //营业执照号 有营业执照必填
+            }
             addNewMerchant.businessTerm = AddInfo.PeriodBegin.Value.ToString("yyyyMMdd") + "-" + AddInfo.PeriodEnd.Value.ToString("yyyyMMdd"); //营业执照有效期 格式:20200101-20300101,长期的填 20200101-99991231
             addNewMerchant.licenceType = AddInfo.LicenceType; //营业执照类型 0-企业法人营业执照 1-个体工商户营业执照 2-党政,机关及事业单位 3-其他组织
             addNewMerchant.userCardNo = AddInfo.IdCardNumber; //商户法人身份证号
@@ -150,22 +145,20 @@ namespace MySystem
                     }
                 }
             }
-            if (AddInfo.AccountType == "0")
+
+            //开户许可证(对公凭证)
+            if (!string.IsNullOrEmpty(AddInfo.OpenAccountLicenses))
             {
-                //开户许可证(对公凭证)
-                if (!string.IsNullOrEmpty(AddInfo.OpenAccountLicenses))
+                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.OpenAccountLicenses.Substring(AddInfo.OpenAccountLicenses.LastIndexOf("/")).Trim('/'), "0"));
+                if (tokenInfo["code"].ToString() == "1")
                 {
-                    var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.OpenAccountLicenses.Substring(AddInfo.OpenAccountLicenses.LastIndexOf("/")).Trim('/'), "0"));
-                    if (tokenInfo["code"].ToString() == "1")
+                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.OpenAccountLicenses);
+                    if (returnInfo != "false")
                     {
-                        var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.OpenAccountLicenses);
-                        if (returnInfo != "false")
-                        {
-                            imageItem = new ImageItem();
-                            imageItem.name = "openAccountLicenses";
-                            imageItem.value = returnInfo;
-                            imageList.Add(imageItem);
-                        }
+                        imageItem = new ImageItem();
+                        imageItem.name = "openAccountLicenses";
+                        imageItem.value = returnInfo;
+                        imageList.Add(imageItem);
                     }
                 }
             }

+ 53 - 70
Util/HaoDa/AddOpenDivideAccountsUtil.cs

@@ -20,7 +20,7 @@ namespace MySystem
             // addOpenDivideAccounts.acctNo = ""; //非必须 用户编码(创建分账接收方失败或者审核驳回时,修改信息时填写)
             addOpenDivideAccounts.userType = "1"; //必须 用户类型 1-企业,2-个人
             addOpenDivideAccounts.userName = "蒲晓敏"; //必须 用户名,个人填写身份证姓名,企业填写法人姓名
-            addOpenDivideAccounts.compName = "四川省润观米科技有限公司"; //企业必须 企业名称
+            addOpenDivideAccounts.compNm = "四川省润观米科技有限公司"; //企业必须 企业名称
             // addOpenDivideAccounts.mobile=""; //非必须 手机号
             addOpenDivideAccounts.legalCertType = "1"; //必须 法人证明类型 1身份证 2护照 3港澳台居民通行证(废弃不用)4外国人永久居留证 5香港来往内地通行证 6澳门来往内地通行证 7台湾同胞来往内地通行证
             addOpenDivideAccounts.userCardNo = "511304198607137628"; //必须 身份证号
@@ -32,7 +32,7 @@ namespace MySystem
             addOpenDivideAccounts.acctBankNo = "304100040000"; //必须 总行行号
             addOpenDivideAccounts.acctBankNm = "华夏银行"; //必须 总行名称
             addOpenDivideAccounts.acctZbankNo = "304651010227"; //必须 支行行号
-            addOpenDivideAccounts.acctZbankNm = "夏银行股份有限公司成都天府支行"; //必须 支行名称
+            addOpenDivideAccounts.acctZbankNm = "夏银行股份有限公司成都天府支行"; //必须 支行名称
             addOpenDivideAccounts.acctZbankCode = "510122"; //必须 开户支行地区码
             // addOpenDivideAccounts.reservedPhone=""; //非必须 预留手机号。个人和企业对私必填
             addOpenDivideAccounts.licNo = "91510106MA6C7RRTXR"; //企业必须 营业执照号
@@ -43,7 +43,7 @@ namespace MySystem
             addOpenDivideAccounts.regAddressCode = "510106"; //企业必须 企业注册地址地区码
             addOpenDivideAccounts.regAddress = "四川省成都市金牛区星辉西路9号1栋7层11号"; //企业必须 企业注册详细地址
             // addOpenDivideAccounts.compTel=""; //非必须 固定电话
-            addOpenDivideAccounts.businessMcc = "软件开发;技术推广服务;信息系统集成服务;企业营销策划;广告设计、制作、代理、发布;组织策划文化交流活动;销售:电子产品、办公用品、生活日用品。"; //企业必须 经营范围mcc
+            addOpenDivideAccounts.businessMcc = "4816"; //企业必须 经营范围mcc
 
             // addOpenDivideAccounts.acctNo = ""; //非必须 用户编码(创建分账接收方失败或者审核驳回时,修改信息时填写)
             // if (AddInfo.LicenceType == "0")//0-企业法人营业执照 1-个体工商户营业执照
@@ -83,99 +83,82 @@ namespace MySystem
             List<ImageItem> imageList = new List<ImageItem>();
             ImageItem imageItem = new ImageItem();
             //身份证正面
-            if (!string.IsNullOrEmpty(AddInfo.IdCardCopy))
+            JsonData tokenInfo = new JsonData();
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/1.jpg".Substring("/static/upload/2023/8/14/1.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.IdCardCopy.Substring(AddInfo.IdCardCopy.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/1.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.IdCardCopy);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "idCardFront";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "idCardFront";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
             //身份证反面
-            if (!string.IsNullOrEmpty(AddInfo.IdCardNational))
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/2.jpg".Substring("/static/upload/2023/8/14/2.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.IdCardNational.Substring(AddInfo.IdCardNational.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/2.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.IdCardNational);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "idCardBack";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "idCardBack";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
             //法人手持身份证正面
-            if (!string.IsNullOrEmpty(AddInfo.PersonWithIdCard))
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/3.jpg".Substring("/static/upload/2023/8/14/3.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.PersonWithIdCard.Substring(AddInfo.PersonWithIdCard.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/3.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.PersonWithIdCard);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "personWithIdCard";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "personWithIdCard";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
-            //收款人银行卡照片
-            if (!string.IsNullOrEmpty(AddInfo.BankCard))
+            //结算银行卡照片
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/00.jpg".Substring("/static/upload/2023/8/14/00.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.BankCard.Substring(AddInfo.BankCard.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/00.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.BankCard);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "bankCard";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "bankCard";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
             //营业执照
-            if (!string.IsNullOrEmpty(AddInfo.LicenseCopy))
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/5.jpg".Substring("/static/upload/2023/8/14/5.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.LicenseCopy.Substring(AddInfo.LicenseCopy.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/5.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.LicenseCopy);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "license";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "license";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
             //开户许可证(对公凭证)
-            if (!string.IsNullOrEmpty(AddInfo.OpenAccountLicenses))
+            tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken("/static/upload/2023/8/14/00.jpg".Substring("/static/upload/2023/8/14/00.jpg".LastIndexOf("/")).Trim('/'), "0"));
+            if (tokenInfo["code"].ToString() == "1")
             {
-                var tokenInfo = JsonMapper.ToObject(HaoDaHelper.Instance.GetToken(AddInfo.OpenAccountLicenses.Substring(AddInfo.OpenAccountLicenses.LastIndexOf("/")).Trim('/'), "0"));
-                if (tokenInfo["code"].ToString() == "1")
+                var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), "/static/upload/2023/8/14/00.jpg");
+                if (returnInfo != "false")
                 {
-                    var returnInfo = HaoDaHelper.Instance.ReturnFileName(tokenInfo["token"].ToString(), AddInfo.OpenAccountLicenses);
-                    if (returnInfo != "false")
-                    {
-                        imageItem = new ImageItem();
-                        imageItem.name = "openAccountLicenses";
-                        imageItem.value = returnInfo;
-                        imageList.Add(imageItem);
-                    }
+                    imageItem = new ImageItem();
+                    imageItem.name = "openAccountLicenses";
+                    imageItem.value = returnInfo;
+                    imageList.Add(imageItem);
                 }
             }
 

+ 39 - 8
Util/HaoDa/CheckWeChatSignService.cs

@@ -31,7 +31,7 @@ namespace MySystem
                 {
                     QueryMerchantStatus queryMerchantStatus = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryMerchantStatus>(content);
                     string result = StartDo(queryMerchantStatus);
-                    if(result == "wait")
+                    if (result == "wait")
                     {
                         Thread.Sleep(10000);
                         RedisDbconn.Instance.AddList("WeChatSignQueue", queryMerchantStatus);
@@ -50,39 +50,70 @@ namespace MySystem
             {
                 var mId = int.Parse(query.MerchantId);
                 WebCMSEntities db = new WebCMSEntities();
-                var returnInfo = HaoDaHelper.Instance.QueryMerchantStatus(HaoDaHelper.BrhCode,query.MerchantNo);
+                //查询商户审核状态
+                var returnInfo = HaoDaHelper.Instance.QueryMerchantStatus(HaoDaHelper.BrhCode, query.MerchantNo);
                 JsonData dic = JsonMapper.ToObject(returnInfo);
+                //审核成功(1- 待审核 2 -审核中 3 -审核被拒绝 4 -审核通过 6 -待复核)
                 if (dic["data"]["code"].ToString() == "4")
                 {
+                    //查询商户是否存在
                     MerchantAddInfo merchantadd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == mId);
                     if (merchantadd != null)
                     {
                         merchantadd.Status = 1;
-                        // merchantadd.AlipayPid = dic["storeNo"].ToString();
-                        // merchantadd.AlipayAuthToken = dic["outMchtNo"].ToString();
-                        merchantadd.SeoKeyword = dic["storeNo"].ToString();
-                        merchantadd.SeoDescription = dic["outMchtNo"].ToString();
+                        merchantadd.StoreNo = dic["data"]["storeNo"].ToString();
+                        merchantadd.OutMchtNo = dic["data"]["outMchtNo"].ToString();
                         MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == mId);
                         if (merchant != null)
                         {
                             merchant.Status = 1;
                         }
-                        JsonData Info = JsonMapper.ToObject(HaoDaHelper.Instance.OpenDivideAccounts(merchantadd.AlipayAuthToken, merchantadd.AlipayPid));
+                        //商户开通分账
+                        JsonData Info = JsonMapper.ToObject(HaoDaHelper.Instance.OpenDivideAccounts(merchantadd.OutMchtNo, merchantadd.StoreNo));
+                        //开通失败
                         if (Info["resultCode"].ToString() == "0")
                         {
                             merchantadd.QueryCount = -1;
                             merchantadd.AlipayRemark = Info["errorDesc"].ToString();
                         }
+                        //开通成功
+                        if (Info["resultCode"].ToString() == "1")
+                        {
+                            merchantadd.OpenAct = 1;//是否开通分账(1 是 0 否)
+                            //添加分账接收方账户
+                            JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.OrderDivideAccounts("230817000000000278", merchantadd.OutMchtNo, merchantadd.StoreNo));
+                            //失败
+                            if (Infos["resultCode"].ToString() == "0")
+                            {
+                                merchantadd.AlipayRemark = Infos["errorDesc"].ToString();
+                            }
+                            //成功
+                            else
+                            {
+                                if (!string.IsNullOrEmpty(merchantadd.ToAcctNo))
+                                {
+                                    if (!merchantadd.ToAcctNo.Contains(",230817000000000278,"))
+                                    {
+                                        merchantadd.ToAcctNo += "," + "230817000000000278" + ",";
+                                    }
+                                }
+                                else
+                                {
+                                    merchantadd.ToAcctNo += "," + "230817000000000278" + ",";
+                                }
+                            }
+                        }
                         db.SaveChanges();
                     }
                     return "wait";
                 }
+                //审核被拒绝
                 else if (dic["data"]["code"].ToString() == "3")
                 {
                     MerchantAddInfo merchantadd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == mId);
                     if (merchantadd != null)
                     {
-                        merchantadd.WeChatRemark = dic["option"].ToString();
+                        merchantadd.WeChatRemark = dic["data"]["option"].ToString();
                         merchantadd.Status = -1;
                         MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == mId);
                         if (merchant != null)

+ 78 - 1
Util/HaoDa/HaoDaHelper.cs

@@ -85,6 +85,56 @@ namespace MySystem
             return result;
         }
 
+        /// <summary>
+        /// 查询实名认证状态
+        /// </summary>
+        /// <param name="mchtNo">慧掌柜商户号</param>
+        /// <param name="storeNo">慧掌柜门店号</param>
+        /// <returns></returns>
+        public string QueryAuthStatus(string mchtNo, string storeNo)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒查询实名认证状态");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+            reqdic.Add("mchtNo", mchtNo); // 慧掌柜商户号
+            reqdic.Add("storeNo", storeNo); // 慧掌柜门店号
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+            function.WriteLog(req, "好哒查询实名认证状态");
+            Dictionary<string, string> headdic = GetHeader(req);
+            string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+            function.WriteLog("请求头\n" + head, "好哒查询实名认证状态");
+            function.WriteLog("请求参数\n" + req, "好哒查询实名认证状态");
+            function.WriteLog("请求地址:" + BoxRequestUrl + "/api/hzg/v2/wechat/queryVerifiedResult.json", "好哒查询实名认证状态");
+            string result = PostWebRequest(BoxRequestUrl + "/api/hzg/v2/wechat/queryVerifiedResult.json", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒查询实名认证状态");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 查询实名认证二维码
+        /// </summary>
+        /// <param name="mchtNo">慧掌柜商户号</param>
+        /// <param name="storeNo">慧掌柜门店号</param>
+        /// <returns></returns>
+        public string QueryAuthQRcode(string mchtNo, string storeNo)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒查询实名认证二维码");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+            reqdic.Add("mchtNo", mchtNo); // 慧掌柜商户号
+            reqdic.Add("storeNo", storeNo); // 慧掌柜门店号
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+            function.WriteLog(req, "好哒查询实名认证二维码");
+            Dictionary<string, string> headdic = GetHeader(req);
+            string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+            function.WriteLog("请求头\n" + head, "好哒查询实名认证二维码");
+            function.WriteLog("请求参数\n" + req, "好哒查询实名认证二维码");
+            function.WriteLog("请求地址:" + BoxRequestUrl + "/api/hzg/v2/wechat/queryVerifiedQrcode.json", "好哒查询实名认证二维码");
+            string result = PostWebRequest(BoxRequestUrl + "/api/hzg/v2/wechat/queryVerifiedQrcode.json", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒查询实名认证二维码");
+
+            return result;
+        }
+
         /// <summary>
         /// 微信公众号和小程序支付接口
         /// </summary>
@@ -223,6 +273,33 @@ namespace MySystem
             return result;
         }
 
+        /// <summary>
+        /// 分账接收方签约
+        /// </summary>
+        /// <param name="acctNo">账户号</param>
+        /// <param name="mchtNo">慧掌柜商户号</param>
+        /// <param name="storeNo">慧掌柜门店号</param>
+        /// <returns></returns>
+        public string OrderDivideAccounts(string acctNo, string mchtNo, string storeNo)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒分账接收方签约");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+            reqdic.Add("acctNo", acctNo); // 账户号	
+            reqdic.Add("mchtNo", mchtNo); // 慧掌柜商户号
+            reqdic.Add("storeNo", storeNo); // 慧掌柜门店号
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+            function.WriteLog(req, "好哒分账接收方签约");
+            Dictionary<string, string> headdic = GetHeader(req);
+            string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+            function.WriteLog("请求头\n" + head, "好哒分账接收方签约");
+            function.WriteLog("请求参数\n" + req, "好哒分账接收方签约");
+            function.WriteLog("请求地址:" + BoxRequestUrl + "/api/v3/hzg/part/acct/bind_mcht", "好哒分账接收方签约");
+            string result = PostWebRequest(BoxRequestUrl + "/api/v3/hzg/part/acct/bind_mcht", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒分账接收方签约");
+
+            return result;
+        }
+
         /// <summary>
         /// 添加分账接收方账户
         /// </summary>
@@ -533,7 +610,7 @@ namespace MySystem
             FileItem item = new FileItem(function.getPath(value.Split(',')[0]));
             Dictionary<string, FileItem> files = new Dictionary<string, FileItem>();
             files.Add("file", item);
-            var upLoadInfo = JsonMapper.ToObject(HaoDaHelper.Instance.DoPost(BoxRequestUrl +"/api/file/v1/upload_file", token, file, files, "utf-8"));
+            var upLoadInfo = JsonMapper.ToObject(HaoDaHelper.Instance.DoPost(BoxRequestUrl + "/api/file/v1/upload_file", token, file, files, "utf-8"));
             if (upLoadInfo["code"].ToString() == "1")
             {
                 return upLoadInfo["data"]["fileName"].ToString();

+ 14 - 1
Util/HaoDa/MerchantConfirmService.cs

@@ -45,7 +45,17 @@ namespace MySystem
             //         Thread.Sleep(2000);
             //     }
             // }
-            StartDo(580);
+
+            // StartDo(1);//开通分账和添加分账接收方
+            while (true)
+            {
+                StartDo(571);
+                // StartDo(580);
+                // StartDo(581);//小微
+                Thread.Sleep(20000);
+            }
+
+            // StartDo(581);//小微
         }
 
         public void StartDo(int MerchantId)
@@ -83,9 +93,11 @@ namespace MySystem
                 db.SaveChanges();
                 if (AddInfo.Status <= 0)
                 {
+                    //好哒新建商户
                     var info = AddNewMerchantSetUtil.SetValue(AddInfo);
                     string result = HaoDaHelper.Instance.AddNewMerchant(info);
                     JsonData jsonObj = JsonMapper.ToObject(result);
+                    //创建成功
                     if (jsonObj["resultCode"].ToString() == "1")
                     {
 
@@ -99,6 +111,7 @@ namespace MySystem
                         queryMerchantStatus.MerchantNo = AddInfo.MchtNo;
                         RedisDbconn.Instance.AddList("WeChatSignQueue", queryMerchantStatus);
                     }
+                    //创建失败
                     else
                     {
                         AddInfo.Status = -1;

+ 25 - 2
Util/HaoDa/TestOpenDivideAccountsService.cs

@@ -25,9 +25,13 @@ namespace MySystem
         public void StartListen()
         {
             // StartDo(1);
-            StartDos(580);
+            // StartDos(1);
+            // StartDo1(1);
+            StartDo2(1);
+            StartDo2(2);
         }
 
+        //添加分账接收方账户
         public void StartDo(int MerchantId)
         {
             WebCMSEntities db = new WebCMSEntities();
@@ -37,11 +41,30 @@ namespace MySystem
             db.Dispose();
         }
 
+        //商户开通分账
         public void StartDos(int MerchantId)
         {
             WebCMSEntities db = new WebCMSEntities();
             MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
-            string result = HaoDaHelper.Instance.OpenDivideAccounts(AddInfo.SeoKeyword,AddInfo.SeoDescription);
+            string result = HaoDaHelper.Instance.OpenDivideAccounts(AddInfo.OutMchtNo, AddInfo.StoreNo);
+            db.Dispose();
+        }
+
+        //查询实名认证二维码
+        public void StartDo1(int MerchantId)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
+            string result = HaoDaHelper.Instance.QueryAuthQRcode(AddInfo.OutMchtNo, AddInfo.StoreNo);
+            db.Dispose();
+        }
+
+        //查询实名认证状态
+        public void StartDo2(int MerchantId)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
+            string result = HaoDaHelper.Instance.QueryAuthStatus(AddInfo.OutMchtNo, AddInfo.StoreNo);
             db.Dispose();
         }
     }