From d3df5273d83fefa80e988300f1d33387985c811c Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期一, 31 三月 2025 17:33:28 +0800
Subject: [PATCH] fix:支付宝支付回调
---
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs | 8 ++++----
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml | 8 ++++++++
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs | 10 +++++++++-
LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 5 +++--
LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs | 18 +++++++++++++++++-
5 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
index f5cb567..299ec16 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -50,7 +50,15 @@
/// <returns></returns>
Task LifePaySuccessHandler(string orderNo, string outOrderNo);
- Task WxPayDomesticRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus);
+ /// <summary>
+ /// 閫�娆炬垚鍔熷洖璋冨鐞�
+ /// </summary>
+ /// <param name="orderNo"></param>
+ /// <param name="refundStatus"></param>
+ /// <returns></returns>
+ Task LifePayRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus);
+
+
/// <summary>
/// 渚涘簲鍟嗗洖璋冨鐞�
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 41fde74..5bae261 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -1321,7 +1321,7 @@
await _lifePayOrderRepository.UpdateAsync(order);
}
- public async Task WxPayDomesticRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus)
+ public async Task LifePayRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus)
{
var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
@@ -1338,6 +1338,7 @@
default: break;
}
}
+
/// <summary>
/// ACOOLYO璁㈠崟閫氱煡澶勭悊
@@ -1598,7 +1599,7 @@
await _lifePayAccount.InsertAsync(userAccount);
}
- if (input.LifePayType == LifePayOrderTypeEnum.PhoneOrder)
+ if (input.LifePayType == LifePayOrderTypeEnum.PhoneOrder || input.LifePayType == LifePayOrderTypeEnum.ElectricOrder)
{
var extraProperties = JsonConvert.DeserializeObject<Model_UserAccountExtraProperties>(input.ExtraProperties);
if (!string.IsNullOrEmpty(extraProperties.Name) && extraProperties.Phone == user.PhoneNumber)
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index 666f3db..e48f92f 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -42,6 +42,14 @@
<param name="outOrderNo"></param>
<returns></returns>
</member>
+ <member name="M:LifePayment.Application.Contracts.ILifePayService.LifePayRefundsHandler(System.String,LifePayment.Domain.Shared.LifePayRefundStatusEnum)">
+ <summary>
+ 閫�娆炬垚鍔熷洖璋冨鐞�
+ </summary>
+ <param name="orderNo"></param>
+ <param name="refundStatus"></param>
+ <returns></returns>
+ </member>
<member name="M:LifePayment.Application.Contracts.ILifePayService.ACOOLYOrderNotifyHandler(System.String,System.String,LifePayment.Domain.Shared.LifePayOrderStatusEnum,LifePayment.Domain.Shared.ACOOLYStatusEnum,System.Decimal,System.String)">
<summary>
渚涘簲鍟嗗洖璋冨鐞�
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
index e2cbb0a..e5b41c0 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
@@ -1,4 +1,5 @@
锘縰sing Alipay.AopSdk.F2FPay.Model;
+using Castle.Core.Internal;
using LifePayment.Application.Contracts;
using LifePayment.Domain.Shared;
using Microsoft.AspNetCore.Authorization;
@@ -11,6 +12,7 @@
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Uow;
+using ZeroD.Util;
namespace LifePayment.HttpApi
{
@@ -57,7 +59,7 @@
if (input.OutTradeNo.Contains("JF"))
{
- if (input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛)
+ if (input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 && input.OutBizNo.IsNullOrEmpty())
{
await _lifePayService.LifePaySuccessHandler(input.OutTradeNo, input.TradeNo);
// 鎻掑叆鏀舵敮娴佹按
@@ -65,6 +67,20 @@
OutOrderNo = input.TradeNo ,LifePayType = LifePayTypeEnum.AliPay,ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
Amount = input.ReceiptAmount.Value });
}
+ else if((input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 && input.OutBizNo.IsNotNullOrEmpty() && input.RefundFee.HasValue) ||
+ input.TradeStatus == LifePaymentConstant.AliPayStatus.瓒呮椂鍏抽棴)
+ {
+ await _lifePayService.LifePayRefundsHandler(input.OutTradeNo, LifePayRefundStatusEnum.宸查��娆�);
+ // 鎻掑叆鏀舵敮娴佹按
+ await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
+ {
+ OrderNo = input.OutTradeNo,
+ OutOrderNo = input.TradeNo,
+ LifePayType = LifePayTypeEnum.AliPay,
+ ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts,
+ Amount = input.ReceiptAmount.Value
+ });
+ }
}
else
{
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
index 970139a..bfec02f 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
@@ -110,7 +110,7 @@
{
case LifePaymentConstant.WxPayRefundStatus.閫�娆炬垚鍔�:
case LifePaymentConstant.WxPayRefundStatus.閫�娆惧叧闂�:
- await _lifePayService.WxPayDomesticRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.宸查��娆�);
+ await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.宸查��娆�);
// 鎻掑叆鏀舵敮娴佹按
await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
{
@@ -122,12 +122,12 @@
});
break;
case LifePaymentConstant.WxPayRefundStatus.閫�娆惧鐞嗕腑:
- await _lifePayService.WxPayDomesticRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);
+ await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);
break;
case LifePaymentConstant.WxPayRefundStatus.閫�娆惧紓甯�:
- await _lifePayService.WxPayDomesticRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);
+ await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);
break;
- default : await _lifePayService.WxPayDomesticRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);break;
+ default : await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.閫�娆句腑);break;
}
}
}
--
Gitblit v1.9.1