DuGuYang 1 year ago
parent
commit
8dc68f0df2

+ 1 - 12
Entity/HaoDa/OrderDivideAccounts.cs

@@ -11,17 +11,6 @@ namespace MySystem
         public string applyNo { get; set; } //必须 批次号
         public string mchtNo { get; set; } //必须 慧掌柜商户号
         public string orderNo { get; set; } //必须 交易订单号(好哒平台订单号,G开头)	
-        public List<DetailItem> detail { get; set; }//账户详情
-
-    }
-
-    /// <summary>
-    /// 详情类
-    /// </summary>
-    public class DetailItem
-    {
-        public string acctNo { get; set; } //账户号,账户类型为商户收款账户时填收款商户号, 账户类型为分账接收方时填分账接收方账户号
-        public int acctType { get; set; } //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
-        public decimal amount { get; set; } //金额(分)
+        public List<Dictionary<string, object>> detail { get; set; }//账户详情
     }
 }

+ 13 - 0
Models/Main/OpenBankAll.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models.Main
+{
+    public partial class OpenBankAll
+    {
+        public string BankChild { get; set; }
+        public string BankChildNo { get; set; }
+        public string BankParentNo { get; set; }
+        public string BankParent { get; set; }
+    }
+}

+ 33 - 0
Models/Main/WebCMSEntities.cs

@@ -112,6 +112,7 @@ namespace MySystem.Models.Main
         public virtual DbSet<MsgSms> MsgSms { get; set; }
         public virtual DbSet<MsgSmsSet> MsgSmsSet { get; set; }
         public virtual DbSet<MsgTemplate> MsgTemplate { get; set; }
+        public virtual DbSet<OpenBankAll> OpenBankAll { get; set; }
         public virtual DbSet<OpenBankCityTable> OpenBankCityTable { get; set; }
         public virtual DbSet<OpenBankTable> OpenBankTable { get; set; }
         public virtual DbSet<OpenReward> OpenReward { get; set; }
@@ -7667,6 +7668,38 @@ namespace MySystem.Models.Main
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<OpenBankAll>(entity =>
+            {
+                entity.HasKey(e => e.BankChild)
+                    .HasName("PRIMARY");
+
+                entity.HasComment("银行行号表");
+
+                entity.Property(e => e.BankChild)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("支行名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.BankChildNo)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("支行行号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.BankParent)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("总行名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.BankParentNo)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("总行行号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+            });
+
             modelBuilder.Entity<OpenBankCityTable>(entity =>
             {
                 entity.HasKey(e => e.CityName)

+ 3 - 3
Startup.cs

@@ -130,9 +130,9 @@ namespace MySystem
             });
 
             initMainServer();
-            MerchantConfirmService.Instance.Start(); //提交商户进件
-            CheckWeChatSignService.Instance.Start(); //查询商户审核状态
-            // TestOpenDivideAccountsService.Instance.Start(); //测试
+            // MerchantConfirmService.Instance.Start(); //提交商户进件
+            // CheckWeChatSignService.Instance.Start(); //查询商户审核状态
+            TestOpenDivideAccountsService.Instance.Start(); //测试
         }
 
         //初始化数据结构

+ 0 - 36
Util/HaoDa/AddOpenDivideAccountsUtil.cs

@@ -44,42 +44,6 @@ namespace MySystem
             addOpenDivideAccounts.regAddress = "四川省成都市金牛区星辉西路9号1栋7层11号"; //企业必须 企业注册详细地址
             // addOpenDivideAccounts.compTel=""; //非必须 固定电话
             addOpenDivideAccounts.businessMcc = "4816"; //企业必须 经营范围mcc
-
-            // addOpenDivideAccounts.acctNo = ""; //非必须 用户编码(创建分账接收方失败或者审核驳回时,修改信息时填写)
-            // if (AddInfo.LicenceType == "0")//0-企业法人营业执照 1-个体工商户营业执照
-            // {
-            //     addOpenDivideAccounts.userType = "1"; //必须 用户类型 1-企业,2-个人
-            //     addOpenDivideAccounts.userName = AddInfo.CertLegalPerson; //必须 用户名,个人填写身份证姓名,企业填写法人姓名
-            //     addOpenDivideAccounts.compName = ""; //企业必须 企业名称
-            // }
-            // if (AddInfo.LicenceType == "1")
-            // {
-            //     addOpenDivideAccounts.userType = "2"; //必须 用户类型 1-企业,2-个人
-            //     addOpenDivideAccounts.userName = AddInfo.CertMerchantName; //必须 用户名,个人填写身份证姓名,企业填写法人姓名
-            // }
-            // // addOpenDivideAccounts.mobile=""; //非必须 手机号
-            // addOpenDivideAccounts.legalCertType = "1"; //必须 法人证明类型 1身份证 2护照 3港澳台居民通行证(废弃不用)4外国人永久居留证 5香港来往内地通行证 6澳门来往内地通行证 7台湾同胞来往内地通行证
-            // addOpenDivideAccounts.userCardNo = AddInfo.IdCardNumber; //必须 身份证号
-            // addOpenDivideAccounts.userCardStartDate = AddInfo.CardPeriodBegin.Value.ToString("yyyyMMdd"); //必须 法人证件开始日期
-            // addOpenDivideAccounts.userCardEndDate = AddInfo.CardPeriodEnd.Value.ToString("yyyyMMdd"); //必须 法人证件结束日期
-            // addOpenDivideAccounts.acctNm = AddInfo.AccountName; //必须 账户名称
-            // addOpenDivideAccounts.acctType = AddInfo.BankAccountType; //必须 账户类型(0-对公、1-对私)
-            // addOpenDivideAccounts.bankCardNo = AddInfo.AccountNumber; //必须 银行卡号
-            // addOpenDivideAccounts.acctBankNo = ""; //必须 总行行号
-            // addOpenDivideAccounts.acctBankNm = ""; //必须 总行名称
-            // addOpenDivideAccounts.acctZbankNo = AddInfo.BankBranchId; //必须 支行行号
-            // addOpenDivideAccounts.acctZbankNm = ""; //必须 支行名称
-            // addOpenDivideAccounts.acctZbankCode = AddInfo.BankAddressCode; //必须 开户支行地区码
-            // // addOpenDivideAccounts.reservedPhone=""; //非必须 预留手机号。个人和企业对私必填
-            // addOpenDivideAccounts.licNo = AddInfo.LicenseNumber; //企业必须 营业执照号
-            // addOpenDivideAccounts.licStartDate = AddInfo.PeriodBegin.Value.ToString("yyyyMMdd"); //企业必须 营业执照开始日期
-            // addOpenDivideAccounts.licEndDate = AddInfo.PeriodEnd.Value.ToString("yyyyMMdd"); //企业必须 营业执照结束日期
-            // addOpenDivideAccounts.businessAddressCode = AddInfo.BizAddressCode; //企业必须 企业经营地区码
-            // addOpenDivideAccounts.businessAddress = AddInfo.BizStoreAddress; //企业必须 企业经营详细地址
-            // addOpenDivideAccounts.regAddressCode = ""; //企业必须 企业注册地址地区码
-            // addOpenDivideAccounts.regAddress = ""; //企业必须 企业注册详细地址
-            // // addOpenDivideAccounts.compTel=""; //非必须 固定电话
-            // addOpenDivideAccounts.businessMcc = AddInfo.SalesScenesType; //企业必须 经营范围mcc
             List<ImageItem> imageList = new List<ImageItem>();
             ImageItem imageItem = new ImageItem();
             //身份证正面

+ 9 - 2
Util/HaoDa/CheckWeChatSignService.cs

@@ -80,8 +80,8 @@ namespace MySystem
                         if (Info["resultCode"].ToString() == "1")
                         {
                             merchantadd.OpenAct = 1;//是否开通分账(1 是 0 否)
-                            //添加分账接收方账户
-                            JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.OrderDivideAccounts("230817000000000278", merchantadd.OutMchtNo, merchantadd.StoreNo));
+                            //分账接收方签约
+                            JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.DivideAccountsSign("230817000000000278", merchantadd.OutMchtNo, merchantadd.StoreNo));
                             //失败
                             if (Infos["resultCode"].ToString() == "0")
                             {
@@ -101,6 +101,13 @@ namespace MySystem
                                 {
                                     merchantadd.ToAcctNo += "," + "230817000000000278" + ",";
                                 }
+                                //绑定微信appid接口
+                                JsonData bindInfo = JsonMapper.ToObject(HaoDaHelper.Instance.BindWeChatAppId(merchantadd.OutMchtNo, merchantadd.StoreNo, "wx6e074b8e07b6577e"));
+                                //失败
+                                if (bindInfo["resultCode"].ToString() == "0")
+                                {
+                                    merchantadd.AlipayRemark = Infos["errorDesc"].ToString();
+                                }
                             }
                         }
                         db.SaveChanges();

+ 130 - 1
Util/HaoDa/HaoDaHelper.cs

@@ -280,7 +280,7 @@ namespace MySystem
         /// <param name="mchtNo">慧掌柜商户号</param>
         /// <param name="storeNo">慧掌柜门店号</param>
         /// <returns></returns>
-        public string OrderDivideAccounts(string acctNo, string mchtNo, string storeNo)
+        public string DivideAccountsSign(string acctNo, string mchtNo, string storeNo)
         {
             function.WriteLog(DateTime.Now.ToString(), "好哒分账接收方签约");
             Dictionary<string, object> reqdic = new Dictionary<string, object>();
@@ -321,6 +321,7 @@ namespace MySystem
 
             return result;
         }
+
         /// <summary>
         /// 订单分账申请
         /// </summary>
@@ -344,6 +345,134 @@ namespace MySystem
             return result;
         }
 
+        /// <summary>
+        /// 订单分账申请
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        /// 
+        public string OrderDivideAccounts22()
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒订单分账申请");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+            List<Dictionary<string, object>> list = new List<Dictionary<string, object>> ();
+            Dictionary<string, object> lists = new Dictionary<string, object>();
+            reqdic.Add("applyNo", "FZ202307050006");
+            reqdic.Add("mchtNo", "1475762");
+            reqdic.Add("orderNo", "G2230818C01935875690");
+            lists.Add("acctNo","030510106621391");
+            lists.Add("acctType","1");
+            lists.Add("amount","1");
+            list.Add(lists);
+            reqdic.Add("detail", list);
+            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/order/apply", "好哒订单分账申请");
+            string result = PostWebRequest(BoxRequestUrl + "/api/v3/hzg/part/order/apply", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒订单分账申请");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 绑定微信appid接口
+        /// </summary>
+        /// <param name="mchtNo">盒子的商户编号</param>
+        /// <param name="storeNo">盒子的门店编号</param>
+        /// <param name="subAppId">公众号appid或者小程序appid</param>
+        /// <returns></returns>
+        public string BindWeChatAppId(string mchtNo, string storeNo, string subAppId)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒绑定微信appid接口");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+
+            reqdic.Add("mchtNo", mchtNo); // 盒子商户号	
+            reqdic.Add("storeNo", storeNo); // 盒子门店号	
+            reqdic.Add("subAppId", subAppId); // 公众号appid或者小程序appid	
+
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+            function.WriteLog(req, "好哒绑定微信appid接口");
+            Dictionary<string, string> headdic = GetHeader(req);
+            string head = Newtonsoft.Json.JsonConvert.SerializeObject(headdic);
+            function.WriteLog("请求头\n" + head, "好哒绑定微信appid接口");
+            function.WriteLog("请求参数\n" + req, "好哒绑定微信appid接口");
+            function.WriteLog("请求地址:" + BoxRequestUrl + "/api/hzg/v2/wechat/add_sub_config", "好哒绑定微信appid接口");
+            string result = PostWebRequest(BoxRequestUrl + "/api/hzg/v2/wechat/add_sub_config", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒绑定微信appid接口");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 到账记录查询
+        /// </summary>
+        /// <param name="mchtNo">商户号</param>
+        /// <param name="startTime">查询开始时间(yyyy-MM-dd)</param>
+        /// <param name="endTime">查询结束时间(yyyy-MM-dd),最大查询时间区间31天</param>
+        /// <param name="tradeMchtNo">收单商户号(15位)</param>
+        /// <param name="cardNo">结算卡号</param>
+        /// <param name="settleStatus">出款状态(0:入账成功、1:入账失败、2:结算超时、3:入账受理成功、4:已提交结算请求)</param>
+        /// <param name="page">当前页数,默认1</param>
+        /// <param name="rows">每页大小,默认10,最大500</param>
+        /// <returns></returns>
+        public string QueryAccountList(string mchtNo, string startTime, string endTime, string tradeMchtNo, string cardNo, string settleStatus, string page = "1", string rows = "10")
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒到账记录查询");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+
+            reqdic.Add("mchtNo", mchtNo); // 盒子商户号	
+            reqdic.Add("startTime", startTime); // 查询开始时间(yyyy-MM-dd)	
+            reqdic.Add("endTime", endTime); // 查询结束时间(yyyy-MM-dd),最大查询时间区间31天	
+            reqdic.Add("tradeMchtNo", tradeMchtNo); // 收单商户号(15位)	
+            reqdic.Add("cardNo", cardNo); // 结算卡号	
+            reqdic.Add("settleStatus", settleStatus); // 出款状态(0:入账成功、1:入账失败、2:结算超时、3:入账受理成功、4:已提交结算请求)	
+            reqdic.Add("page", page); // 当前页数,默认1	
+            reqdic.Add("rows", rows); // 每页大小,默认10,最大500	
+
+            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/accb/to_account/query", "好哒到账记录查询");
+            string result = PostWebRequest(BoxRequestUrl + "/api/v3/hzg/accb/to_account/query", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒到账记录查询");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 到账记录详情
+        /// </summary>
+        /// <param name="mchtNo">商户号</param>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public string QueryAccountDetail(string mchtNo, string id)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "好哒到账记录详情");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+
+            reqdic.Add("mchtNo", mchtNo); // 商户号	
+            reqdic.Add("id", id); // id	
+
+            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/accb/to_account/get", "好哒到账记录详情");
+            string result = PostWebRequest(BoxRequestUrl + "/api/v3/hzg/accb/to_account/get", req, headdic);
+            function.WriteLog("返回\n" + result + "\n\n", "好哒到账记录详情");
+
+            return result;
+        }
+
         public Dictionary<string, string> GetHeader(string req)
         {
             Dictionary<string, string> headdic = new Dictionary<string, string>();

+ 1 - 2
Util/HaoDa/MerchantConfirmService.cs

@@ -94,8 +94,7 @@ namespace MySystem
                 if (AddInfo.Status <= 0)
                 {
                     //好哒新建商户
-                    var info = AddNewMerchantSetUtil.SetValue(AddInfo);
-                    string result = HaoDaHelper.Instance.AddNewMerchant(info);
+                    string result = HaoDaHelper.Instance.AddNewMerchant(AddNewMerchantSetUtil.SetValue(AddInfo));
                     JsonData jsonObj = JsonMapper.ToObject(result);
                     //创建成功
                     if (jsonObj["resultCode"].ToString() == "1")

+ 15 - 14
Util/HaoDa/OrderDivideAccountsUtil.cs

@@ -2,6 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using LitJson;
 using MySystem;
 using MySystem.Models.Main;
 
@@ -15,26 +16,26 @@ namespace MySystem
         /// <summary>
         /// 
         /// </summary>
+        /// <param name="applyNo">批次号</param>
         /// <param name="mchtNo">慧掌柜商户号</param>
         /// <param name="orderNo">交易订单号(好哒平台订单号,G开头)</param>
+        /// <param name="acctNo">账户号,账户类型为商户收款账户时填收款商户号, 账户类型为分账接收方时填分账接收方账户号</param>
+        /// <param name="acctType">账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))</param>
         /// <param name="amount">金额(分)</param>
         /// <returns></returns>
-        public static OrderDivideAccounts SetValue(string mchtNo, string orderNo, decimal amount)
+        public static OrderDivideAccounts AddValue(string applyNo, string mchtNo, string orderNo, string acctNo, string acctType, string amount)
         {
             OrderDivideAccounts orderDivideAccounts = new OrderDivideAccounts();
-            orderDivideAccounts.applyNo = "";//必须 批次号
-            orderDivideAccounts.mchtNo = mchtNo;//必须 慧掌柜商户号
-            orderDivideAccounts.orderNo = orderNo;//必须 交易订单号(好哒平台订单号,G开头)
-            
-            List<DetailItem> imageList = new List<DetailItem>();
-            DetailItem imageItem = new DetailItem();
-            
-            imageItem.acctNo = ""; //账户号,账户类型为商户收款账户时填收款商户号, 账户类型为分账接收方时填分账接收方账户号
-            imageItem.acctType = 1; //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
-            imageItem.amount = amount; //金额(分)
-            imageList.Add(imageItem);
-            orderDivideAccounts.detail = imageList; //图片
-
+            orderDivideAccounts.applyNo = applyNo;
+            orderDivideAccounts.mchtNo = mchtNo;
+            orderDivideAccounts.orderNo = orderNo;
+            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
+            Dictionary<string, object> obj = new Dictionary<string, object>();
+            obj.Add("acctNo", acctNo);
+            obj.Add("acctType", acctType);
+            obj.Add("amount", amount);
+            list.Add(obj);
+            orderDivideAccounts.detail = list;
             return orderDivideAccounts;
         }
     }

+ 31 - 11
Util/HaoDa/TestOpenDivideAccountsService.cs

@@ -24,25 +24,21 @@ namespace MySystem
 
         public void StartListen()
         {
-            // StartDo(1);
-            // StartDos(1);
-            // StartDo1(1);
-            StartDo2(1);
-            StartDo2(2);
+            DivideAccountsSign(1);//分账接收方签约
+            // OrderDivideAccounts22(1);//指定订单申请分账
         }
 
         //添加分账接收方账户
-        public void StartDo(int MerchantId)
+        public void AddOpenDivideAccounts(int MerchantId)
         {
             WebCMSEntities db = new WebCMSEntities();
             MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
-            var info = AddOpenDivideAccountsUtil.AddValue(AddInfo);
-            string result = HaoDaHelper.Instance.AddOpenDivideAccounts(info);
+            string result = HaoDaHelper.Instance.AddOpenDivideAccounts(AddOpenDivideAccountsUtil.AddValue(AddInfo));
             db.Dispose();
         }
 
         //商户开通分账
-        public void StartDos(int MerchantId)
+        public void OpenDivideAccounts(int MerchantId)
         {
             WebCMSEntities db = new WebCMSEntities();
             MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
@@ -50,8 +46,23 @@ namespace MySystem
             db.Dispose();
         }
 
+        //分账接收方签约
+        public void DivideAccountsSign(int MerchantId)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
+            string result = HaoDaHelper.Instance.DivideAccountsSign("230817000000000278", AddInfo.OutMchtNo, AddInfo.StoreNo);
+            db.Dispose();
+        }
+
+        //指定订单申请分账
+        public void OrderDivideAccounts22()
+        {
+            HaoDaHelper.Instance.OrderDivideAccounts22();
+        }
+
         //查询实名认证二维码
-        public void StartDo1(int MerchantId)
+        public void QueryAuthQRcode(int MerchantId)
         {
             WebCMSEntities db = new WebCMSEntities();
             MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
@@ -60,12 +71,21 @@ namespace MySystem
         }
 
         //查询实名认证状态
-        public void StartDo2(int MerchantId)
+        public void QueryAuthStatus(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();
         }
+
+         //绑定微信appid接口
+        public void BindWeChatAppId(int MerchantId)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId);
+            string result = HaoDaHelper.Instance.BindWeChatAppId(AddInfo.OutMchtNo, AddInfo.StoreNo,"wx6e074b8e07b6577e");
+            db.Dispose();
+        }
     }
 }

+ 41 - 36
Util/HaoDa/WeChatPayBackService.cs

@@ -56,40 +56,40 @@ namespace MySystem
             {
                 // if (jsonObj["event_type"].ToString() == "TRANSACTION.SUCCESS")
                 // {
-                    // JsonData resource = jsonObj["resource"];
-                    //开始解密
-                    // string WxPayResourceDecryptModel = AesGcmDecrypt(resource["associated_data"].ToString(), resource["nonce"].ToString(), resource["ciphertext"].ToString());
-                    // {\"sp_mchid\":\"1611167423\",\"sub_mchid\":\"1622024882\",\"sp_appid\":\"wxe2c051b3e46c0f6f\",\"out_trade_no\":\"2022022621562926396898863\",\"transaction_id\":\"4200001412202202267619496496\",\"trade_type\":\"JSAPI\",\"trade_state\":\"SUCCESS\",\"trade_state_desc\":\"支付成功\",\"bank_type\":\"OTHERS\",\"attach\":\"\",\"success_time\":\"2022-02-26T21:56:42+08:00\",\"payer\":{\"sp_openid\":\"omawy5W6jb0pgPfuKUVs6K3bEhzk\",\"sub_openid\":\"\"},\"amount\":{\"total\":1,\"payer_total\":1,\"currency\":\"CNY\",\"payer_currency\":\"CNY\"}}
-                    // JsonData orderObj = JsonMapper.ToObject(WxPayResourceDecryptModel);
-                    string OrderNo = jsonObj["outOrderNo"].ToString();
-                    string TradeNo = jsonObj["orderNo"].ToString();
-                    WebCMSEntities db = new WebCMSEntities();
-                    ConsumerOrderForNo forNo = db.ConsumerOrderForNo.FirstOrDefault(m => m.OrderNo == OrderNo);
-                    if (forNo != null)
+                // JsonData resource = jsonObj["resource"];
+                //开始解密
+                // string WxPayResourceDecryptModel = AesGcmDecrypt(resource["associated_data"].ToString(), resource["nonce"].ToString(), resource["ciphertext"].ToString());
+                // {\"sp_mchid\":\"1611167423\",\"sub_mchid\":\"1622024882\",\"sp_appid\":\"wxe2c051b3e46c0f6f\",\"out_trade_no\":\"2022022621562926396898863\",\"transaction_id\":\"4200001412202202267619496496\",\"trade_type\":\"JSAPI\",\"trade_state\":\"SUCCESS\",\"trade_state_desc\":\"支付成功\",\"bank_type\":\"OTHERS\",\"attach\":\"\",\"success_time\":\"2022-02-26T21:56:42+08:00\",\"payer\":{\"sp_openid\":\"omawy5W6jb0pgPfuKUVs6K3bEhzk\",\"sub_openid\":\"\"},\"amount\":{\"total\":1,\"payer_total\":1,\"currency\":\"CNY\",\"payer_currency\":\"CNY\"}}
+                // JsonData orderObj = JsonMapper.ToObject(WxPayResourceDecryptModel);
+                string OrderNo = jsonObj["outOrderNo"].ToString();
+                string TradeNo = jsonObj["orderNo"].ToString();
+                WebCMSEntities db = new WebCMSEntities();
+                ConsumerOrderForNo forNo = db.ConsumerOrderForNo.FirstOrDefault(m => m.OrderNo == OrderNo);
+                if (forNo != null)
+                {
+                    ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == forNo.OrderIds && m.Status == 0);
+                    if (order != null)
                     {
-                        ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == forNo.OrderIds && m.Status == 0);
-                        if (order != null)
+                        order.Status = 1;
+                        order.UpdateDate = DateTime.Now;
+                        order.PayMoney = order.PayMoney;
+                        order.MaxDivi = order.MaxDivi;
+                        order.SeoTitle = TradeNo;
+                        MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantInfo();
+                        order.UserId = merchant.UserId;
+                        ConsumerOrders check = db.ConsumerOrders.FirstOrDefault(m => m.Id < order.Id && m.Status > 0 && m.PayMode == order.PayMode && m.MerchantId == order.MerchantId);
+                        if (check != null)
                         {
-                            order.Status = 1;
-                            order.UpdateDate = DateTime.Now;
-                            order.PayMoney = order.PayMoney;
-                            order.MaxDivi = order.MaxDivi;
-                            order.SeoTitle = TradeNo;
-                            MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantInfo();
-                            order.UserId = merchant.UserId;
-                            ConsumerOrders check = db.ConsumerOrders.FirstOrDefault(m => m.Id < order.Id && m.Status > 0 && m.PayMode == order.PayMode && m.MerchantId == order.MerchantId);
-                            if(check != null)
-                            {
-                                order.QueryCount = check.QueryCount + 1;
-                            }
-                            else
-                            {
-                                order.QueryCount = 1;
-                            }
-                            db.SaveChanges();                            
+                            order.QueryCount = check.QueryCount + 1;
+                        }
+                        else
+                        {
+                            order.QueryCount = 1;
                         }
+                        db.SaveChanges();
                     }
-                    db.Dispose();
+                }
+                db.Dispose();
                 // }
             }
         }
@@ -129,15 +129,15 @@ namespace MySystem
                     WebCMSEntities db = new WebCMSEntities();
                     DateTime checkDate = DateTime.Now.AddMinutes(-1);
                     var list = db.ConsumerOrders.Select(m => new { m.Id, m.CreateDate, m.Status, m.IsAct, m.PayMode }).Where(m => m.Status == 1 && m.IsAct == 1 && m.CreateDate < checkDate).OrderBy(m => m.Id).Take(10).ToList();
-                    foreach(var sub in list)
+                    foreach (var sub in list)
                     {
                         ConsumerOrders order = db.ConsumerOrders.FirstOrDefault(m => m.Id == sub.Id);
-                        if(order != null)
+                        if (order != null)
                         {
                             order.Status = 2;
                             MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantInfo();
                             MerchantParamSet set = db.MerchantParamSet.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantParamSet();
-                            if(order.IsAct == 1 && order.PayMoney >= set.MinPayMoney)
+                            if (order.IsAct == 1 && order.PayMoney >= set.MinPayMoney)
                             {
                                 MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
                                 //添加分账接收方
@@ -150,12 +150,17 @@ namespace MySystem
                                 // }
                                 //发起分账
                                 decimal fee = order.PayMoney; //单位:分
-                                if(fee >= 1)
+                                if (fee >= 1)
                                 {
                                     string TradeNo = order.SeoTitle;
                                     string OrderNo = order.OrderNo;
-                                    var info = OrderDivideAccountsUtil.SetValue("mchtNo",OrderNo,fee);
-                                    HaoDaHelper.Instance.OrderDivideAccounts(info);
+                                    string applyNo = "FZ202307050006";
+                                    string mchtNo = "";
+                                    string orderNo = "";
+                                    string acctNo = "";
+                                    string acctType = "1";
+                                    string amount = "";
+                                    HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, acctType, amount));
 
                                     //开始监听分账状态
                                     Dictionary<string, object> req = new Dictionary<string, object>();