smj_7038 3 år sedan
förälder
incheckning
1a8e804dd5

+ 80 - 6
Central.Control.WebApi/App_Data/Central.Control.WebApi.xml

@@ -231,6 +231,13 @@
             <param name="req"></param>
             <returns></returns>
         </member>
+        <member name="M:Central.Control.WebApi.Controllers.OrderController.GetQueueOrder(System.String)">
+            <summary>
+            根据id获取商品信息
+            </summary>
+            <param name="orderId"></param>
+            <returns></returns>
+        </member>
         <member name="M:Central.Control.WebApi.Controllers.OrderController.GetQueueOrders">
             <summary>
             获取待烧烤的商品列表
@@ -245,7 +252,7 @@
         </member>
         <member name="M:Central.Control.WebApi.Controllers.OrderController.OrderProcess(Central.Control.WebApi.Models.Request.OrderProcessRequestDto)">
             <summary>
-            回写流程状态
+            回写订单制作过程记录
             </summary>
             <param name="req"></param>
             <returns></returns>
@@ -286,10 +293,11 @@
             </summary>
             <returns></returns>
         </member>
-        <member name="M:Central.Control.WebApi.Controllers.OrderController.selftest(System.Int32,System.Int32)">
+        <member name="M:Central.Control.WebApi.Controllers.OrderController.tradeQuery(System.String)">
             <summary>
-            app设备测试
+            支付宝退款查询
             </summary>
+            <param name="orderId"></param>
             <returns></returns>
         </member>
         <member name="T:Central.Control.WebApi.Controllers.ProductController">
@@ -916,6 +924,11 @@
             3支付失败
             </summary>
         </member>
+        <member name="F:Central.Control.WebApi.Enum.PayStatusEnum.CustomerRefundApply">
+            <summary>
+            客户申请退款
+            </summary>
+        </member>
         <member name="F:Central.Control.WebApi.Enum.PayStatusEnum.RefundApply">
             <summary>
             申请退款
@@ -1442,6 +1455,11 @@
             商品id
             </summary>
         </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DeviceProductResponseDto.ProductName">
+            <summary>
+            商品名称
+            </summary>
+        </member>
         <member name="P:Central.Control.WebApi.Models.Response.DeviceProductResponseDto.Code">
             <summary>
             商品编号(唯一)
@@ -1467,6 +1485,41 @@
             库存
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Response.OrderInfoResponseDto">
+            <summary>
+            订单信息
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.Id">
+            <summary>
+            主键id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.Name">
+            <summary>
+            订单名称
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.Price">
+            <summary>
+            订单金额
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.PayStatus">
+            <summary>
+            支付状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.PaySerialId">
+            <summary>
+            支付流水号
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderInfoResponseDto.PayWay">
+            <summary>
+            支付类型
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Models.Response.OrderResponseDto">
             <summary>
             
@@ -1682,6 +1735,13 @@
             <param name="req"></param>
             <returns></returns>
         </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.GetQueueOrder(System.String)">
+            <summary>
+            根据id获取商品信息
+            </summary>
+            <param name="orderId"></param>
+            <returns></returns>
+        </member>
         <!-- Badly formed XML comment ignored for member "M:Central.Control.WebApi.Service.Interface.IOrderService.GetQueueOrders" -->
         <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.CancelUnPayOrder(System.String)">
             <summary>
@@ -1727,6 +1787,13 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.tradeQuery(System.String)">
+            <summary>
+            
+            </summary>
+            <param name="orderId"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Service.Interface.IProductService">
             <summary>
             
@@ -1880,6 +1947,13 @@
             <param name="req"></param>
             <returns></returns>
         </member>
+        <member name="M:Central.Control.WebApi.Service.OrderService.GetQueueOrder(System.String)">
+            <summary>
+            根据id获取商品信息
+            </summary>
+            <param name="orderId"></param>
+            <returns></returns>
+        </member>
         <!-- Badly formed XML comment ignored for member "M:Central.Control.WebApi.Service.OrderService.GetQueueOrders" -->
         <member name="M:Central.Control.WebApi.Service.OrderService.CancelUnPayOrder(System.String)">
             <summary>
@@ -1926,7 +2000,7 @@
             <param name="req"></param>
             <returns></returns>
         </member>
-        <member name="M:Central.Control.WebApi.Service.OrderService.AliPayRefund(System.String,System.String,System.Decimal,System.String)">
+        <member name="M:Central.Control.WebApi.Service.OrderService.AliPayRefund(System.String,System.String,System.Decimal,System.String,System.String)">
             <summary>
             支付宝退款
             </summary>
@@ -1936,13 +2010,13 @@
             <param name="refundReason"></param>
             <returns></returns>
         </member>
-        <member name="M:Central.Control.WebApi.Service.OrderService.AliPayRefundQuery(System.String,System.String,System.String)">
+        <member name="M:Central.Control.WebApi.Service.OrderService.AliPayRefundQuery(System.String,System.String,System.Decimal)">
             <summary>
             支付宝退款查询
             </summary>
             <param name="orderId"></param>
             <param name="paySerialId"></param>
-            <param name="deviceId"></param>
+            <param name="orderPrice"></param>
             <returns></returns>
         </member>
         <member name="M:Central.Control.WebApi.Service.OrderService.PayTest">

+ 3 - 0
Central.Control.WebApi/Central.Control.WebApi.csproj

@@ -251,6 +251,7 @@
     <Compile Include="Models\Response\DeviceLoginResponseDto.cs" />
     <Compile Include="Models\Response\DevicePackingResponseDto.cs" />
     <Compile Include="Models\Response\DeviceProductResponseDto.cs" />
+    <Compile Include="Models\Response\OrderInfoResponseDto.cs" />
     <Compile Include="Models\Response\OrderResponseDto.cs" />
     <Compile Include="Models\Response\ProductResponseDto.cs" />
     <Compile Include="Models\Response\QueueOrderResponseDto.cs" />
@@ -274,6 +275,8 @@
     <Content Include="Html\Error.html" />
     <Content Include="Html\ErrorPayDevice.html" />
     <Content Include="Html\img\error.png" />
+    <Content Include="Html\ErrorPayWay.html" />
+    <Content Include="Html\OrderCancel.html" />
     <Content Include="Html\OrderNotExist.html" />
     <Content Include="Html\img\warning.png" />
     <Content Include="Web.config" />

+ 19 - 9
Central.Control.WebApi/Controllers/OrderController.cs

@@ -54,6 +54,18 @@ namespace Central.Control.WebApi.Controllers
             return _orderService.Order(req);
         }
 
+        /// <summary>
+        /// 根据id获取商品信息
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("queryorder/{orderId}")]
+        public ApiResult<OrderInfoResponseDto> GetQueueOrder(string orderId)
+        {
+            return _orderService.GetQueueOrder(orderId);
+        }
+
         /// <summary>
         /// 获取待烧烤的商品列表
         /// </summary>
@@ -77,7 +89,7 @@ namespace Central.Control.WebApi.Controllers
         }
 
         /// <summary>
-        /// 回写流程状态
+        /// 回写订单制作过程记录
         /// </summary>
         /// <param name="req"></param>
         /// <returns></returns>
@@ -187,20 +199,18 @@ namespace Central.Control.WebApi.Controllers
             return responseMessage;
         }
 
-
         /// <summary>
-        /// app设备测试
+        /// 支付宝退款查询
         /// </summary>
+        /// <param name="orderId"></param>
         /// <returns></returns>
         [AllowAnonymous]
         [HttpGet]
-        [Route("selftest")]
-        public ApiResult selftest(int v1,int v2)
+        [Route("tradeQuery")]
+        public AlipayF2FQueryResult tradeQuery(string orderId)
         {
-            var ss = v1 / v2;
-            var sss = v1 % v2;
-            return new ApiResult() { Message = $"/{ss}|%{sss}" };
+            return _orderService.tradeQuery(orderId);
         }
-    
+
     }
 }

+ 7 - 3
Central.Control.WebApi/Enum/PayStatusEnum.cs

@@ -27,16 +27,20 @@ namespace Central.Control.WebApi.Enum
         /// </summary>
         Fail = 3,
         /// <summary>
+        /// 客户申请退款
+        /// </summary>
+        CustomerRefundApply = 4,
+        /// <summary>
         /// 申请退款
         /// </summary>
-        RefundApply = 4,
+        RefundApply = 5,
         /// <summary>
         /// 退款中
         /// </summary>
-        Refunding = 5,
+        Refunding = 6,
         /// <summary>
         /// 已退款
         /// </summary>
-        Refunded = 6
+        Refunded = 7
     }
 }

+ 11 - 0
Central.Control.WebApi/Html/ErrorPayWay.html

@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title>订单</title>
+</head>
+<body style="text-align:center;margin-top:30%;font-size:xx-large">
+    <img src="img/warning.png" style="border:none;outline:none;width:250px;height:250px;" />
+    <h2>您已经发起了其他支付方式</h2>
+</body>
+</html>

+ 11 - 0
Central.Control.WebApi/Html/OrderCancel.html

@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title>订单</title>
+</head>
+<body style="text-align:center;margin-top:30%;font-size:xx-large">
+    <img src="img/warning.png" style="border:none;outline:none;width:250px;height:250px;" />
+    <h2>订单已取消,不能发起支付</h2>
+</body>
+</html>

+ 4 - 0
Central.Control.WebApi/Models/Response/DeviceProductResponseDto.cs

@@ -19,6 +19,10 @@ namespace Central.Control.WebApi.Models.Response
         /// </summary>
         public string ProductId { set; get; } = string.Empty;
         /// <summary>
+        /// 商品名称
+        /// </summary>
+        public string ProductName { set; get; } = string.Empty;
+        /// <summary>
         /// 商品编号(唯一)
         /// </summary>
         public string Code { set; get; } = string.Empty;

+ 39 - 0
Central.Control.WebApi/Models/Response/OrderInfoResponseDto.cs

@@ -0,0 +1,39 @@
+using Central.Control.WebApi.Enum;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Response
+{
+	/// <summary>
+	/// 订单信息
+	/// </summary>
+    public class OrderInfoResponseDto
+    {
+		/// <summary>
+		/// 主键id
+		/// </summary>
+		public string Id { set; get; } = string.Empty;
+		/// <summary>
+		/// 订单名称
+		/// </summary>
+		public string Name { set; get; } = string.Empty;
+		/// <summary>
+		/// 订单金额
+		/// </summary>
+		public decimal Price { set; get; }
+		/// <summary>
+		/// 支付状态
+		/// </summary>
+		public PayStatusEnum PayStatus { set; get; } = PayStatusEnum.UnPay;
+		/// <summary>
+		/// 支付流水号
+		/// </summary>
+		public string PaySerialId { set; get; } = string.Empty;
+		/// <summary>
+		/// 支付类型
+		/// </summary>
+		public PayWayEnum PayWay { set; get; } = PayWayEnum.UnKnow;
+	}
+}

+ 1 - 0
Central.Control.WebApi/Service/DeviceService.cs

@@ -49,6 +49,7 @@ namespace Central.Control.WebApi.Service
                           {
                               Id = dp.Id,
                               ProductId = p.Id,
+                              ProductName = p.Name,
                               Code = p.Code,
                               Img = ProductService.ImagePrefix + p.Img,
                               Info = p.Info,

+ 13 - 0
Central.Control.WebApi/Service/Interface/IOrderService.cs

@@ -22,6 +22,13 @@ namespace Central.Control.WebApi.Service.Interface
         /// <returns></returns>
         ApiResult<OrderResponseDto> Order(OrderRequestDto req);
 
+        /// <summary>
+        /// 根据id获取商品信息
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        ApiResult<OrderInfoResponseDto> GetQueueOrder(string orderId);
+
         /// <summary>
         /// 获取待烧烤的商品列表
         /// <returns></returns>
@@ -71,5 +78,11 @@ namespace Central.Control.WebApi.Service.Interface
         /// <returns></returns>
         ApiResult<AlipayF2FPrecreateResult> PayTest();
 
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        AlipayF2FQueryResult tradeQuery(string orderId);
     }
 }

+ 16 - 8
Central.Control.WebApi/Service/LoginService.cs

@@ -56,17 +56,25 @@ namespace Central.Control.WebApi.Service
                 _cacheHelper.Remove(oldToken);
             }
 
+            var loginSession = _dbContent.Set<SYS_LoginSession>().FirstOrDefault(p => p.UserId == deviceInfo.Id);
+            bool isAdd = false;
+            if (loginSession == null)
+            {
+                isAdd = true;
+                loginSession = new SYS_LoginSession() { Id = IdGenerator.NewId() };
+            }
+
             string token = IdGenerator.AntToken();
             // 2、存库
-            SYS_LoginSession loginSession = new SYS_LoginSession()
+            loginSession.UserId = deviceInfo.Id;
+            loginSession.UserName = deviceInfo.Code;
+            loginSession.Token = token;
+            loginSession.Expiration = DateTime.MaxValue;
+
+            if (isAdd)
             {
-                Id = Guid.NewGuid().ToString(),
-                UserId = deviceInfo.Id,
-                UserName = deviceInfo.Code,
-                Token = token,
-                Expiration = DateTime.MaxValue
-            };
-            _dbContent.Set<SYS_LoginSession>().Add(loginSession);
+                _dbContent.Set<SYS_LoginSession>().Add(loginSession);
+            }
             // 执行保存
             _dbContent.SaveChanges();
 

+ 79 - 17
Central.Control.WebApi/Service/OrderService.cs

@@ -190,7 +190,7 @@ namespace Central.Control.WebApi.Service
             #endregion
 
             // 写入订单日志
-            _ywLogService.WriteOrderLog(order.Id, "下单", "下单成功", session.UserId);
+            _ywLogService.WriteOrderLog(order.Id, "下单", "下单成功", session.UserName);
 
             return new ApiResult<OrderResponseDto>(new OrderResponseDto()
             {
@@ -200,6 +200,31 @@ namespace Central.Control.WebApi.Service
             });
         }
 
+        /// <summary>
+        /// 根据id获取商品信息
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        public ApiResult<OrderInfoResponseDto> GetQueueOrder(string orderId)
+        {
+            var session = _userService.GetLoginSession();
+
+            var order = _dbContent.Set<YW_Order>().FirstOrDefault(p => p.IsDelete == 0 && p.Id == orderId && p.DeviceId == session.UserId);
+            if (order == null)
+            {
+                return new ApiResult<OrderInfoResponseDto>(ApiStatusCode.InvalidParameter, "订单不存在");
+            }
+            OrderInfoResponseDto result = new OrderInfoResponseDto() {
+                Id = order.Id,
+                Name = order.Name,
+                Price = order.Price,
+                PayStatus = order.PayStatus,
+                PaySerialId = order.PaySerialId,
+                PayWay = order.PayWay
+            };
+            return new ApiResult<OrderInfoResponseDto>(result);
+        }
+
         /// <summary>
         /// 获取待烧烤的商品列表
         /// <summary>
@@ -258,6 +283,18 @@ namespace Central.Control.WebApi.Service
             {
                 return new ApiResult(ApiStatusCode.InvalidParameter, "当前订单不是未支付状态,不能取消");
             }
+
+            // 需要试试查询支付宝或者
+            if (order.PayWay == PayWayEnum.AliPay)
+            {
+                var tradeQueryResult = serviceClient.tradeQuery(order.Id);
+                if (tradeQueryResult.Status == ResultEnum.SUCCESS && tradeQueryResult.response.TradeStatus == "TRADE_SUCCESS")
+                {
+                    // 已经支付成功
+                    return new ApiResult(ApiStatusCode.InvalidParameter, "当前订单已经支付成功,不能取消");
+                }
+            }
+
             order.PayStatus = PayStatusEnum.Cancel;
             order.OrderStatus = OrderStatusEnum.Cancel;
             _dbContent.SaveChanges();
@@ -324,6 +361,16 @@ namespace Central.Control.WebApi.Service
             {
                 return "http://api.rgtech.ltd/html/ordernotexist.html";
             }
+            if (order.PayStatus == PayStatusEnum.Cancel)
+            {
+                // 订单已取消,不能支付再次支付
+                return "http://api.rgtech.ltd/html/ordercancel.html";
+            }
+            if (order.PayWay != PayWayEnum.UnKnow && order.PayWay != PayWayEnum.AliPay)
+            {
+                // 上次请求非支付宝支付、返回失败
+                return "http://api.rgtech.ltd/html/errorpayway.html";
+            }
             string result = "http://api.rgtech.ltd/html/error.html";
 
             // 查询订单详情
@@ -345,7 +392,7 @@ namespace Central.Control.WebApi.Service
             //订单名称
             builder.subject = order.Name;
             //自定义超时时间
-            builder.timeout_express = "10m";
+            builder.timeout_express = "2m";
             //订单描述
             builder.body = "";
             //门店编号,很重要的参数,可以用作之后的营销
@@ -370,8 +417,6 @@ namespace Central.Control.WebApi.Service
 
             #endregion
 
-
-
             //如果需要接收扫码支付异步通知,那么请把下面两行注释代替本行。
             //推荐使用轮询撤销机制,不推荐使用异步通知,避免单边账问题发生。
             //AlipayF2FPrecreateResult precreateResult = new AlipayF2FPrecreateResult();
@@ -379,7 +424,10 @@ namespace Central.Control.WebApi.Service
 
             switch (precreateResult.Status)
             {
-                case ResultEnum.SUCCESS:
+                case ResultEnum.SUCCESS:// 申请支付成功,写入订单支付方式(以便于其他人再次扫码使用不同支付方式)
+                    order.PayWay = PayWayEnum.AliPay;
+                    order.ModifyDT = DateTime.Now;
+                    _dbContent.SaveChanges();
                     result = precreateResult.response.QrCode;
                     break;
                 case ResultEnum.FAILED:
@@ -467,7 +515,7 @@ namespace Central.Control.WebApi.Service
         {
             var order = _dbContent.Set<YW_Order>().FirstOrDefault(p => p.IsDelete == 0 && p.Id == orderId);
 
-            if (order.PayStatus != PayStatusEnum.RefundApply)
+            if (order.PayStatus != PayStatusEnum.Paid)
             {
                 // 订单状态不可退款
                 return new ApiResult(ApiStatusCode.InvalidParameter, "当前订单状态不可退款");
@@ -480,7 +528,7 @@ namespace Central.Control.WebApi.Service
                     break;
                 case PayWayEnum.AliPay:
                     // 支付宝退款
-                    result = AliPayRefund(order.Id, order.PaySerialId, order.Price, "客户发起退款");
+                    result = AliPayRefund(order.Id, order.PaySerialId, order.Price, order.Id, "客户发起退款");
                     break;
                 default:
                     result = new ApiResult(ApiStatusCode.Forbidden, "未知支付方式,无法在线自动退款");
@@ -511,7 +559,7 @@ namespace Central.Control.WebApi.Service
             // 2、请求支付宝退款接口查询是否已退款成功
             // 3、退款成功或失败时,回写到订单中
             var modifyDt = DateTime.Now.AddMinutes(-2);// 查询2分钟以前的订单,因为退款需要一定时间,马上查询会返回失败
-            var order = _dbContent.Set<YW_Order>().Where(p => p.IsDelete == 0 && p.PayStatus == PayStatusEnum.RefundApply && p.ModifyDT < modifyDt).OrderBy(p => p.ModifyDT).FirstOrDefault();
+            var order = _dbContent.Set<YW_Order>().Where(p => p.IsDelete == 0 && p.PayStatus == PayStatusEnum.Refunding && p.ModifyDT < modifyDt).OrderBy(p => p.ModifyDT).FirstOrDefault();
             if (order == null)
             {
                 return new ApiResult(ApiStatusCode.InvalidParameter, "无退款中订单");
@@ -519,6 +567,15 @@ namespace Central.Control.WebApi.Service
             // 更新modifydt以便下次捞取别的订单
             order.ModifyDT = DateTime.Now;
 
+            // 测试
+            //var order = new YW_Order()
+            //{
+            //    Id = "GBJUJCBWD3E26SIV",
+            //    PaySerialId = "2022040322001434260501434677",
+            //    DeviceId = string.Empty,// "cb8b354c-b713-4dd7-9752-a6f3217004a0",
+            //    PayWay = PayWayEnum.AliPay
+            //};
+
             ApiResult result = null;
             switch (order.PayWay)
             {
@@ -527,7 +584,7 @@ namespace Central.Control.WebApi.Service
                     break;
                 case PayWayEnum.AliPay:
                     // 查询支付宝退款
-                    result = AliPayRefundQuery(order.Id, order.PaySerialId, order.DeviceId);
+                    result = AliPayRefundQuery(order.Id, order.PaySerialId, order.Price);
                     break;
                 default:
                     result = new ApiResult(ApiStatusCode.Forbidden, "未知支付方式,无法进行查询");
@@ -547,7 +604,7 @@ namespace Central.Control.WebApi.Service
             else
             {
                 // 退款失败,将订单更新成错误,并记录订单日志
-                order.PayStatus = PayStatusEnum.Fail;
+                // order.PayStatus = PayStatusEnum.Fail;
                 order.OrderStatus = OrderStatusEnum.Cancel;
                 order.ModifyDT = DateTime.Now;
                 order.ModifyBY = "用户申请";
@@ -634,14 +691,14 @@ namespace Central.Control.WebApi.Service
         /// <param name="refundAmount"></param>
         /// <param name="refundReason"></param>
         /// <returns></returns>
-        private ApiResult AliPayRefund(string orderId,string paySerialId,decimal refundAmount, string refundReason)
+        private ApiResult AliPayRefund(string orderId,string paySerialId,decimal refundAmount, string out_request_no, string refundReason)
         {
             AlipayTradeRefundContentBuilder builder = new AlipayTradeRefundContentBuilder()
             {
                 trade_no = paySerialId,
                 out_trade_no = orderId,
                 refund_amount = refundAmount.ToString(),
-                out_request_no = string.Empty,
+                out_request_no = out_request_no,
                 refund_reason = refundReason,
             };
             ApiResult result = null;
@@ -673,27 +730,27 @@ namespace Central.Control.WebApi.Service
         /// </summary>
         /// <param name="orderId"></param>
         /// <param name="paySerialId"></param>
-        /// <param name="deviceId"></param>
+        /// <param name="orderPrice"></param>
         /// <returns></returns>
-        private ApiResult AliPayRefundQuery(string orderId, string paySerialId, string deviceId)
+        private ApiResult AliPayRefundQuery(string orderId, string paySerialId, decimal orderPrice)
         {
             var builder = new AlipayTradeFastpayRefundQueryContentBuilder()
             {
                 trade_no = paySerialId,
                 out_trade_no = orderId,
-                out_request_no = deviceId
+                out_request_no = orderId
             };
             ApiResult result = null;
             // 支付宝退款
             _log4NetHelper.Error($"[AliPayRefund]-AliPayRefundQuery-start:request:{JsonConvert.SerializeObject(builder)}");
             var refundQueryResult = serviceClient.tradeFastpayRefundQuery(builder);
-            _log4NetHelper.Error($"[AliPayRefund]-AliPayRefundQuery-end:request:{JsonConvert.SerializeObject(refundQueryResult)}");
+            _log4NetHelper.Error($"[AliPayRefund]-AliPayRefundQuery-end:response:{JsonConvert.SerializeObject(refundQueryResult)}");
 
             switch (refundQueryResult.Status)
             {
                 case ResultEnum.SUCCESS:
                     string content = "成功";
-                    if (refundQueryResult.response.RefundStatus == "REFUND_SUCCESS")
+                    if (ConvertHelper.ToDecimal(refundQueryResult.response.RefundAmount) == orderPrice)
                     {
                         // 退款成功
                         result = new ApiResult();
@@ -881,5 +938,10 @@ namespace Central.Control.WebApi.Service
 
         #endregion
 
+        public AlipayF2FQueryResult tradeQuery(string orderId)
+        {
+            return serviceClient.tradeQuery(orderId);
+        }
+
     }
 }