浏览代码

返现流程调整

lcl 1 年之前
父节点
当前提交
11aca22e6b

+ 0 - 1
AppStart/Helper/AlipayPayBackService.cs

@@ -61,7 +61,6 @@ namespace MySystem
                                 order.PayMoney = order.PayMoney;
                                 order.MaxDivi = order.MaxDivi;
                                 db.SaveChanges();
-                                RedisDbconn.Instance.AddList("ConsumerOrdersStat", order.Id);
                                 RedisDbconn.Instance.AddList("ConsumerOrders:Divi:List", order.Id.ToString());
                                 RedisDbconn.Instance.AddRightList("ConsumerOrders:Divi:" + order.MerchantId, order);
                                 // ConsumerOrdersStatService.Instance.Stat(order);

+ 1 - 1
AppStart/Helper/CheckWeChatSignService.cs

@@ -49,7 +49,7 @@ namespace MySystem
             {
                 PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
                 List<MerchantSign> deletes = new List<MerchantSign>();
-                Dictionary<string, object> dic = new WeChatFunction().QueryMerchant(sign.BusinessCode);
+                Dictionary<string, object> dic = WeChatFunction.Instance.QueryMerchant(sign.BusinessCode);
                 if (dic["applyment_state"].ToString() == "APPLYMENT_STATE_TO_BE_SIGNED")
                 {
                     string sign_url = dic["sign_url"].ToString();

+ 1 - 3
AppStart/Helper/ConsumerOrdersReturnDoService.cs

@@ -48,14 +48,12 @@ namespace MySystem
                             }
                             else if (item.QueryCount == 2)
                             {
-                                string AppId = "wxe2c051b3e46c0f6f";
-                                string MchId = "1611167423";
                                 MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == item.MerchantId) ?? new MerchantAddInfo();
                                 MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == item.MerchantId) ?? new MerchantInfo();
                                 string SubMchId = merchantAdd.SubMchid;
                                 string Description = merchant.Name;
                                 string RefundNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
-                                Dictionary<string, string> dic = new WeChatFunction().Refund(AppId, MchId, SubMchId, item.GetMoney, decimal.Parse(function.CheckNum(item.SeoKeyword)), item.SeoTitle, RefundNo);
+                                Dictionary<string, string> dic = WeChatFunction.Instance.Refund(SubMchId, item.GetMoney, decimal.Parse(function.CheckNum(item.SeoKeyword)), item.SeoTitle, RefundNo);
                                 if (dic.ContainsKey("status"))
                                 {
                                     if (dic["status"] == "SUCCESS")

+ 1 - 1
AppStart/Helper/MerchantConfirmService.cs

@@ -84,7 +84,7 @@ namespace MySystem
                 //微信
                 if (Kind == 0 || Kind == 2)
                 {
-                    string result = new WeChatFunction().MerchantCreate(AddInfo, merchant);
+                    string result = WeChatFunction.Instance.MerchantCreate(AddInfo, merchant);
                     if (result.Contains("\"applyment_id\":"))
                     {
                         JsonData jsonObj = JsonMapper.ToObject(result);

+ 2 - 60
AppStart/Helper/Profit/ProfitHelper.cs

@@ -113,15 +113,6 @@ namespace MySystem
                                     //         GetMoney = GetMoney,
                                     //     }).Entity;
                                     //     db.SaveChanges();
-                                    //     RedisDbconn.Instance.AddList("ConsumerOrdersStat", new RefundItem()
-                                    //     {
-                                    //         ProfitId = cprofit.Id,
-                                    //         TradeNo = order.OrderNo,
-                                    //         RefundMoney = GetMoney,
-                                    //         TotalMoney = PayMoney,
-                                    //         PayMode = order.PayMode,
-                                    //         MerchantId = order.MerchantId,
-                                    //     });
                                     // }
                                     List<int> deletes = new List<int>();
                                     long CurDiviPersons = DiviPersons;
@@ -180,6 +171,8 @@ namespace MySystem
                                                         SeoKeyword = order.PayMoney.ToString(),
                                                     }).Entity;
                                                     db.SaveChanges();
+                                                    MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == suborder.MerchantId) ?? new MerchantAddInfo();
+                                                    Dictionary<string, string> dic = WeChatFunction.Instance.Refund(merchantAdd.SubMchid, GetMoney, suborder.PayMoney, suborder.OrderNo, DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8));
                                                     if (suborder.CurDivi < suborder.MaxDivi)
                                                     {
                                                         RedisDbconn.Instance.AddList("ConsumerOrders:Divi:" + MerchantId, suborder);
@@ -214,57 +207,6 @@ namespace MySystem
                                     // AgentProfit(db, order);
                                 }
                             }
-
-                            //统计商户数据
-                            // string MonthString = order.UpdateDate.Value.ToString("yyyyMM");
-                            // string DateString = order.UpdateDate.Value.ToString("yyyyMMdd");
-                            // TotalActual = PublicFunction.NumberFormat(TotalActual);
-                            // function.WriteLog(TotalActual.ToString(), "监控退款队列");
-                            // merchant.TotalActual += TotalActual;
-                            // db.SaveChanges();
-
-                            // List<string> Dates = RedisDbconn.Instance.GetList<string>("ConsumerStat:" + MerchantId + ":" + MonthString, 1, 1000);
-                            // if (!Dates.Contains(DateString))
-                            // {
-                            //     RedisDbconn.Instance.AddList("ConsumerStat:" + MerchantId + ":" + MonthString, DateString);
-                            // }
-                            // MerchantIndexStat DateIndexStat = RedisDbconn.Instance.Get<MerchantIndexStat>("MerchantIndexStat:" + MerchantId + ":" + DateString) ?? new MerchantIndexStat();
-                            // DateIndexStat.TotalOrder += 1;
-                            // DateIndexStat.TotalAmount += PayMoney;
-                            // DateIndexStat.TotalActual += TotalActual;
-                            // if (order.PayMode == 1)
-                            // {
-                            //     DateIndexStat.AlipayTotalAmount += PayMoney;
-                            //     DateIndexStat.AlipayTotalActual += TotalActual;
-                            // }
-                            // else if (order.PayMode == 2)
-                            // {
-                            //     DateIndexStat.WeChatTotalAmount += PayMoney;
-                            //     DateIndexStat.WeChatTotalActual += TotalActual;
-                            // }
-                            // RedisDbconn.Instance.Set("MerchantIndexStat:" + MerchantId + ":" + DateString, DateIndexStat);
-
-                            // List<string> Months = RedisDbconn.Instance.GetList<string>("ConsumerStat:" + MerchantId, 1, 1000);
-                            // if (!Months.Contains(MonthString))
-                            // {
-                            //     RedisDbconn.Instance.AddList("ConsumerStat:" + MerchantId, MonthString);
-                            // }
-                            // MerchantIndexStat MonthIndexStat = RedisDbconn.Instance.Get<MerchantIndexStat>("MerchantIndexStat:" + MerchantId + ":" + MonthString) ?? new MerchantIndexStat();
-                            // MonthIndexStat.TotalOrder += 1;
-                            // MonthIndexStat.TotalAmount += PayMoney;
-                            // MonthIndexStat.TotalActual += TotalActual;
-                            // if (order.PayMode == 1)
-                            // {
-                            //     MonthIndexStat.AlipayTotalAmount += PayMoney;
-                            //     MonthIndexStat.AlipayTotalActual += TotalActual;
-                            // }
-                            // else if (order.PayMode == 2)
-                            // {
-                            //     MonthIndexStat.WeChatTotalAmount += PayMoney;
-                            //     MonthIndexStat.WeChatTotalActual += TotalActual;
-                            // }
-                            // RedisDbconn.Instance.Set("MerchantIndexStat:" + MerchantId + ":" + MonthString, MonthIndexStat);
-
                         }
                     }
                     tran.Commit();

+ 30 - 7
AppStart/Helper/WeChatPayBackService.cs

@@ -56,16 +56,39 @@ namespace MySystem
                                     {
                                         order.Status = 1;
                                         order.UpdateDate = DateTime.Now;
-                                        order.PayMoney = order.PayMoney * 10000;
-                                        order.MaxDivi = order.MaxDivi * 10000;
+                                        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;
                                         db.SaveChanges();
-                                        RedisDbconn.Instance.AddList("ConsumerOrdersStat", order.Id);
-                                        RedisDbconn.Instance.AddList("ConsumerOrders:Divi:List", order.Id.ToString());
-                                        RedisDbconn.Instance.AddRightList("ConsumerOrders:Divi:" + order.MerchantId, order);
-                                        // ConsumerOrdersStatService.Instance.Stat(order);
+                                        if(order.IsAct == 1)
+                                        {
+                                            MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
+                                            //添加分账接收方
+                                            if(merchant.Version == 0)
+                                            {
+                                                WeChatFunction.Instance.AddReceive(merchantAdd.SubMchid, "MERCHANT_ID", WeChatFunction.Instance.MchId, "四川客小爽科技有限公司", "PARTNER");
+                                                merchantAdd.Version = 1;
+                                                db.SaveChanges();
+                                            }
+                                            //发起分账
+                                            decimal fee = order.PayMoney * 0.62M; //单位:分
+                                            if(fee >= 1)
+                                            {
+                                                List<ReceiverList> Receivers = new List<ReceiverList>();
+                                                Receivers.Add(new ReceiverList()
+                                                {
+                                                    type = "MERCHANT_ID",  //分账接收方类型
+                                                    account = WeChatFunction.Instance.MchId,  //分账接收方账号
+                                                    amount = (int)fee,  //分账金额
+                                                    description = "服务费",  //分账描述
+                                                });
+                                                WeChatFunction.Instance.ProfitShare(merchantAdd.SubMchid, TradeNo, OrderNo, Receivers);
+                                            }
+                                            RedisDbconn.Instance.AddList("ConsumerOrders:Divi:List", order.Id.ToString());
+                                            RedisDbconn.Instance.AddRightList("ConsumerOrders:Divi:" + order.MerchantId, order);
+                                        }
                                     }
                                 }
                                 db.Dispose();
@@ -74,7 +97,7 @@ namespace MySystem
                     }
                     catch (Exception ex)
                     {
-                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "public_service");
+                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "微信支付回调异常");
                     }
                 }
                 else

+ 12 - 0
AppStart/Tables/WeChat/ReceiverList.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+namespace MySystem
+{
+    public class ReceiverList
+    {
+        public string type { get; set; }  //分账接收方类型
+        public string account { get; set; }  //分账接收方账号
+        public int amount { get; set; }  //分账金额
+        public string description { get; set; }  //分账描述
+    }
+}

+ 49 - 12
AppStart/WeChatFunction.cs

@@ -8,7 +8,6 @@ using System.Security.Cryptography;
 using System.Text;
 using System.IO;
 using System.Net;
-using MySystem.PxcModels;
 using Org.BouncyCastle.Crypto.Modes;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Crypto.Engines;
@@ -17,10 +16,13 @@ namespace MySystem
 {
     public class WeChatFunction
     {
-        public WeChatFunction()
-        {
-        }
+        public readonly static WeChatFunction Instance = new WeChatFunction();
+        private WeChatFunction()
+        { }
 
+        public string AppId = "wx5417e0770bb19c4e";
+        public string MchId = "1611167423";
+        public string serialNo = "534165421BE2814DEC08F8D00BDAB9944B13646C";
 
         #region 服务商平台商户进件提交申请单API
 
@@ -218,9 +220,7 @@ namespace MySystem
             Dictionary<string, object> return_result = new Dictionary<string, object>();
             try
             {
-                string merchantId = "1611167423";   //商户号
-                string serialNo = "534165421BE2814DEC08F8D00BDAB9944B13646C";  //证书编号
-                string result = postJson("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/business_code/" + BusinessCode, "", prikey, merchantId, serialNo, "GET");
+                string result = postJson("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/business_code/" + BusinessCode, "", prikey, MchId, serialNo, "GET");
                 function.WriteLog(result, "服务商平台查询申请单状态API");
                 //{\"applyment_id\":2000002247709762,\"applyment_state\":\"APPLYMENT_STATE_FINISHED\",\"applyment_state_msg\":\"商户入驻申请已完成\",\"audit_detail\":[],\"business_code\":\"0123456789\",\"sign_url\":\"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQFv7zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyUXE1czkzb3JlUjIxZHpXbTF5Y2YAAgRjbe9hAwQAjScA\",\"sub_mchid\":\"1619775262\"}
                 JsonData jsonObj = JsonMapper.ToObject(result);
@@ -257,7 +257,7 @@ namespace MySystem
         
         #region 服务商平台申请退款API
 
-        public Dictionary<string, string> Refund(string AppId, string MchId, string SubMchId, decimal RefundMoney, decimal TotalMoney, string OrderNo, string RefundNo)
+        public Dictionary<string, string> Refund(string SubMchId, decimal RefundMoney, decimal TotalMoney, string OrderNo, string RefundNo)
         {
             Dictionary<string, string> return_result = new Dictionary<string, string>();
             int refund = (int)(RefundMoney * 100);
@@ -276,10 +276,8 @@ namespace MySystem
             string req = Newtonsoft.Json.JsonConvert.SerializeObject(par);
             function.WriteLog(req, "服务商平台申请退款API");
             try
-            {
-                string merchantId = MchId;   //商户号
-                string serialNo = "534165421BE2814DEC08F8D00BDAB9944B13646C";  //证书编号                
-                string result = postJson("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds", req, prikey, merchantId, serialNo);
+            {           
+                string result = postJson("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds", req, prikey, MchId, serialNo);
                 function.WriteLog(result, "服务商平台申请退款API");
                 JsonData jsonObj = JsonMapper.ToObject(result);
                 return_result.Add("refund_id", jsonObj["refund_id"].ToString()); //微信支付退款单号
@@ -300,6 +298,45 @@ namespace MySystem
         }
         #endregion
 
+        #region 服务商平台请求分账API
+
+        public string ProfitShare(string SubMchId, string TradeNo, string OrderNo, List<ReceiverList> Receivers) //有活动分0.62%,没活动不分账
+        {
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("sub_mchid", SubMchId); //子商户号
+            result.Add("appid", AppId); //应用ID
+            result.Add("transaction_id", TradeNo); //微信订单号
+            result.Add("out_order_no", OrderNo); //商户分账单号
+            result.Add("receivers", Receivers); //分账接收方列表
+            result.Add("unfreeze_unsplit", true); //是否解冻剩余未分资金
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(result);
+            string resp = postJson("https://api.mch.weixin.qq.com/v3/profitsharing/orders", req, prikey, MchId, serialNo);
+            return resp;
+            //{"order_id":"30000104462023060249559178531","out_order_no":"2023060210583730173782834","receivers":[{"account":"1611167423","amount":3,"create_time":"2023-06-02T11:34:10+08:00","description":"服务费","detail_id":"36000104462023060269999025889","finish_time":"1970-01-01T08:00:00+08:00","result":"PENDING","type":"MERCHANT_ID"},{"account":"1645266943","amount":7,"create_time":"2023-06-02T11:34:10+08:00","description":"解冻给分账方","detail_id":"36000104462023060269999025890","finish_time":"1970-01-01T08:00:00+08:00","result":"PENDING","type":"MERCHANT_ID"}],"state":"PROCESSING","sub_mchid":"1645266943","transaction_id":"4200001833202306025522158377"}
+        }
+        #endregion
+
+        #region 服务商平台添加分账接收方API
+
+        public string AddReceive(string SubMchId, string TypeName, string Account, string Name, string Relation)
+        {
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("sub_mchid", SubMchId); //子商户号
+            result.Add("appid", AppId); //应用ID
+            result.Add("type", TypeName); //分账接收方类型 MERCHANT_ID:商户ID  PERSONAL_OPENID:个人openid(由父商户APPID转换得到) PERSONAL_SUB_OPENID:个人sub_openid(由子商户APPID转换得到)
+            result.Add("account", Account); //分账接收方账号
+            if(!string.IsNullOrEmpty(Name))
+            {
+                result.Add("name", RSAEncrypt(Name)); //分账个人接收方姓名
+            }
+            result.Add("relation_type", Relation); //与分账方的关系类型 STORE:门店 STAFF:员工 STORE_OWNER:店主 PARTNER:合作伙伴 HEADQUARTER:总部 BRAND:品牌方 DISTRIBUTOR:分销商 USER:用户 SUPPLIER: 供应商 CUSTOM:自定义
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(result);
+            string resp = postJson("https://api.mch.weixin.qq.com/v3/profitsharing/receivers/add", req, prikey, MchId, serialNo);
+            return resp;
+            //{"account":"1611167423","name":"x+8m5jM4x2jSZLDOpN46Js9JyeNgUXkFSmGjCBN45QcSYUNPN86TOheRF64WlwDeO45E/walWPeZSksNN/LfJiB2fZRVun1CJuJ7zxePma8L7iDbKS92i+d38rvOmNTjLhKX64O8oJR4HMtFw1HryxJlUFgM5/ickJ79WGrX3GaVArWisgEzwOyxGBfGSL3ofJhi5TdTnrxHMzqYWv43DRvI9Ja5eMgFbgrGcn+JiJVKQcYj1L8tZ6xQeQCXkY6ubyDiV9wQps2nQA1Oh+UdFcS13Ex4FUSYLCczGFAl4EV8TBJQleZeC1p4ZJquJjje0uMjI2xB6S41yUBoN86gkA==","relation_type":"PARTNER","sub_mchid":"1645266943","type":"MERCHANT_ID"}
+        }
+        #endregion
+
 
 
 

+ 5 - 3
Controllers/HomeController.cs

@@ -50,11 +50,13 @@ namespace MySystem.Controllers
 
         public string test()
         {
+            string txt = "";
             //{"id":"dc4512b7-83cd-5fa5-91e9-a80fc8562e96","create_time":"2023-06-01T13:42:42+08:00","resource_type":"encrypt-resource","event_type":"TRANSACTION.SUCCESS","summary":"支付成功","resource":{"original_type":"transaction","algorithm":"AEAD_AES_256_GCM","ciphertext":"n/mRI+vnpUsIoNPM9dCsQvcbqOkhQkpoeWAPsdenYw/FvyDmg9Cc4N8yRa6nFxVYpQR7pbjxYLQcZk8bf2Us4mo6ZCUN4B/JH0NT4ja1eSyy7no6n2mJyufpf2oig9KbqabTjiFk84zIyxdg3wtttEohdYZr1w8rPSF0+7MR5LAdx73g+v5f/gbu0r3AzwErbO7fF9vOoJqNgqcc3VgpAhoH9xwed+PNCUmgGH+YjO0lvdurztJL0iXT9P6kiy+36Tcsp6wT2SdVXCzxS65wNhPI2M0S2A0WDPpBw5cswR/glLFwo9XqT5gavU19oS6w3mLNUlB1OsEMt3tqcTDCS4zk5I9uT45uMAAvF2EiJBsnGxSUuRD1qL4jZ8hdxV2MRquy8Nbxr1wj926ye98BXdR9ZaAH9G6UMk4YyTjiVMbvhOqciqfuFlwxNkXtpV8b3QAWOhsIw0E210Tss2JDNW38ITaCwfBwSyRfYjYFhoIEbpEVpUZBn2NqxxeK1iv/h2zp3BapS+Zy0iMDba9GDjJVqEHDc6in3rSB3e5/VFjdVm3dWVH3+Gry/pU9ATTJNWaJsr/z3sWzzOoa3u0SsihPIdhJ4QiDlsYAz0JGVvbcqMXyaEb9tRR2oYWy4kOOsYirnSmhuRbeow==","associated_data":"transaction","nonce":"QxHnxeB6xtrU"}}
-            string content = "n/mRI+vnpUsIoNPM9dCsQvcbqOkhQkpoeWAPsdenYw/FvyDmg9Cc4N8yRa6nFxVYpQR7pbjxYLQcZk8bf2Us4mo6ZCUN4B/JH0NT4ja1eSyy7no6n2mJyufpf2oig9KbqabTjiFk84zIyxdg3wtttEohdYZr1w8rPSF0+7MR5LAdx73g+v5f/gbu0r3AzwErbO7fF9vOoJqNgqcc3VgpAhoH9xwed+PNCUmgGH+YjO0lvdurztJL0iXT9P6kiy+36Tcsp6wT2SdVXCzxS65wNhPI2M0S2A0WDPpBw5cswR/glLFwo9XqT5gavU19oS6w3mLNUlB1OsEMt3tqcTDCS4zk5I9uT45uMAAvF2EiJBsnGxSUuRD1qL4jZ8hdxV2MRquy8Nbxr1wj926ye98BXdR9ZaAH9G6UMk4YyTjiVMbvhOqciqfuFlwxNkXtpV8b3QAWOhsIw0E210Tss2JDNW38ITaCwfBwSyRfYjYFhoIEbpEVpUZBn2NqxxeK1iv/h2zp3BapS+Zy0iMDba9GDjJVqEHDc6in3rSB3e5/VFjdVm3dWVH3+Gry/pU9ATTJNWaJsr/z3sWzzOoa3u0SsihPIdhJ4QiDlsYAz0JGVvbcqMXyaEb9tRR2oYWy4kOOsYirnSmhuRbeow==";
-            string txt = new WeChatFunction().AesGcmDecrypt("transaction", "QxHnxeB6xtrU", content);
+            // string content = "3IOiuqVNgoBm+slkn6EEgZyTaaEfq8CAHlSZUZuBfgxvhGz1+MWGqQ0wb0H3Jo5s9GveNP6zlrJAcxT7jGjYKMawN3WH+0zwQXZziYX3K3fXzamdputjuGz4MU2UBnDnIihgeaGfExH85UJQVJGoqJ38QiFo8MBaFRMz9FtspT3+tcBUryRCqdHvF57sNnKvEYJeacDKI8vEQV0YiUvytRsjMKbvLLwx+m6WsaIP4y4XPBuwmiJ5wYNFkVzUWUxzlctkjGsUXQGJrAch30pjBIr39gxMeWnph5fS6Jszivplki7jhSJjOgckRVmqOYvdmf8zcIeW3i02axg1YoxjPvs4JP+NZ3cQAZMI4FQLlV2w3pJGFKY7ZBIP73F6sHLMn6FReOvzWmWaQ+WvbGw9PpRpckkV83Eu9D6TpKRcw/M9cQA8Vh+24vuA6aFhMl2kUVTIdziOQrhH5GBvURKGm+YCtokOnsU21V01UCgEWA2NDL1D0GZZFwmMy4IiR1QY7IAwoqavt7h8l/8X5qHvhucqkdaRmYlLMM2S/xOob2HIiTA3l8Nj8BYXcbhr52fv14qY4qFSgtOc6NrverxANIIdv+YhCXU49cY25L1MjCQINUbvJ78jaFaeuv8nNcqjmfADyTC8c+jI4J7W1Z4B0isnT18XYcu6rYQhvjoyoW41ATVFDZtV3Xh/y7n14foLT5qXfkG21SABCviVL79N+36koa8rQB5yJQ==";
+            // string txt = WeChatFunction.Instance.AesGcmDecrypt("transaction", "ACgp5LfxJ2Pl", content);
+            Dictionary<string, string> result = WeChatFunction.Instance.Refund("1645266943", 0.01M, 0.1M, "2023060214014405449699901", DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8));
+            txt = Newtonsoft.Json.JsonConvert.SerializeObject(result);
             return txt;
-            //{"sp_mchid":"1611167423","sub_mchid":"1645266943","sp_appid":"wx5417e0770bb19c4e","out_trade_no":"2023060113423544310448679","transaction_id":"4200001833202306012813500432","trade_type":"JSAPI","trade_state":"SUCCESS","trade_state_desc":"支付成功","bank_type":"OTHERS","attach":"","success_time":"2023-06-01T13:42:42+08:00","payer":{"sp_openid":"ooDpv5LkCKEguE-LMZO-rSV4TDpk","sub_openid":""},"amount":{"total":2,"payer_total":2,"currency":"CNY","payer_currency":"CNY"}}
         }
     
     }

+ 4 - 4
Startup.cs

@@ -171,10 +171,10 @@ namespace MySystem
             });
 
             //必须打开的
-            MerchantConfirmService.Instance.Start();
-            CheckWeChatSignService.Instance.Start();
-            WeChatPayBackService.Instance.Start();
-            ProfitHelper.Instance.StartListenTrade();
+            // MerchantConfirmService.Instance.Start();
+            // CheckWeChatSignService.Instance.Start();
+            // WeChatPayBackService.Instance.Start();
+            // ProfitHelper.Instance.StartListenTrade();
             //必须打开的
         }
     }