zhengyiming
9 小时以前 483ea509b5f1429ee76916e8556c803b241bad89
fix: s
1个文件已修改
41 ■■■■■ 已修改文件
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
@@ -1,4 +1,5 @@
using LifePayment.Application.Contracts;
using Alipay.AopSdk.Core.Domain;
using LifePayment.Application.Contracts;
using LifePayment.Domain;
using LifePayment.Domain.Shared;
using Medallion.Threading;
@@ -141,7 +142,8 @@
        {
            try
            {
                _logger.LogError($"微信退款回调通知:进入微信回调");
                var req = input.ToJson();
                _logger.LogError($"微信退款回调通知:进入微信回调:" + req);
                var data = _wxPayApi.AesGcmDecrypt(input.Resource.AssociatedData, input.Resource.Nonce, input.Resource.Ciphertext);
                _logger.LogError($"微信退款回调通知data:" + data);
                var wxPayNotice = JsonConvert.DeserializeObject<WxPayDomesticRefundsNotice>(data);
@@ -175,7 +177,7 @@
            }
            catch (Exception ex)
            {
                _logger.LogError($"微信退款回调通知错误:" + ex.Message);
                return new WxRechargeNotifyResult
                {
                    Code = "FAIL",
@@ -188,5 +190,38 @@
                Code = "SUCCESS",
            };
        }
        [HttpPost]
        [UnitOfWork]
        public async Task WxPayDomesticRefundsNotifyImp(WxPayDomesticRefundsNotice input)
        {
            var wxPayNotice = input;
            if (wxPayNotice.OutTradeNo.Contains("JF"))
            {
                switch (wxPayNotice.RefundStatus)
                {
                    case LifePaymentConstant.WxPayRefundStatus.退款成功:
                        await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.已退款);
                        // 插入收支流水
                        await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
                        {
                            OrderNo = wxPayNotice.OutTradeNo,
                            OutRefundNo = wxPayNotice.OutRefundNo,
                            OutOrderNo = wxPayNotice.TransactionId,
                            LifePayType = LifePayTypeEnum.WxPay,
                            ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts,
                            Amount = wxPayNotice.Amount.Total
                        });
                        break;
                    case LifePaymentConstant.WxPayRefundStatus.退款关闭:
                    case LifePaymentConstant.WxPayRefundStatus.退款处理中:
                    case LifePaymentConstant.WxPayRefundStatus.退款异常:
                        await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.退款中);
                        break;
                    default: await _lifePayService.LifePayRefundsHandler(wxPayNotice.OutTradeNo, LifePayRefundStatusEnum.退款中); break;
                }
            }
        }
    }
}