zhengyuxuan
2025-04-07 6ae97d768948e197a89492239441feca04c1dbb9
LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs
@@ -52,8 +52,11 @@
            }
            var baseInfo = JsonConvert.DeserializeObject<ACOOLYRequestBaseResponse>(body);
            var orderNo = string.Empty;
            var status = LifePayOrderStatusEnum.待确认;
            LifePayOrderStatusEnum status = LifePayOrderStatusEnum.待退款;
            ACOOLYStatusEnum acoolyStatus = ACOOLYStatusEnum.充值失败;
            var acoolyOrderNo = string.Empty;
            decimal payAmount = 0;
            string refundApplyRemark = string.Empty;
            _logger.LogError("ACOOLY回调通处理类型:" + baseInfo.Service);
            _logger.LogError("ACOOLY回调内容:" + body);
            switch (baseInfo.Service)
@@ -62,65 +65,160 @@
                    var confirmElectricOrderResponse = JsonConvert.DeserializeObject<ConfirmElectricOrderResponse>(body);
                    orderNo = confirmElectricOrderResponse.ElectricChargeOrder.OutOrderNo;
                    acoolyOrderNo = confirmElectricOrderResponse.ElectricChargeOrder.BusiOrderNo;
                    payAmount = confirmElectricOrderResponse.ElectricChargeOrder.PayAmount;
                    _logger.LogError("ACOOLY回调通处理结果状态:" + confirmElectricOrderResponse.ElectricChargeOrder.Status);
                    /// TODO 状态不正确
                    if (!confirmElectricOrderResponse.Success
                    || (confirmElectricOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmElectricOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Code.SUCCESS)
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.充值成功)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已完成;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Code.PROCESSING)
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待确认;
                        status = LifePayOrderStatusEnum.充值中;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                        refundApplyRemark = "供应商充值失败";
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.退款中)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.退款完成)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
                case ACOOLYConstant.Sevice.ConfirmPhoneOrder:
                    var confirmPhoneOrderResponse = JsonConvert.DeserializeObject<ConfirmPhoneOrderResponse>(body);
                    orderNo = confirmPhoneOrderResponse.PhoneChargeOrder.OutOrderNo;
                    acoolyOrderNo = confirmPhoneOrderResponse.PhoneChargeOrder.BusiOrderNo;
                    payAmount = confirmPhoneOrderResponse.PhoneChargeOrder.PayAmount;
                    _logger.LogError("ACOOLY回调通处理结果状态:" + confirmPhoneOrderResponse.PhoneChargeOrder.Status);
                    if (!confirmPhoneOrderResponse.Success
                    || (confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                     || (confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
                    if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Code.SUCCESS)
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.充值成功)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已完成;
                    }
                    else
                    if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Code.PROCESSING)
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待确认;
                        status = LifePayOrderStatusEnum.充值中;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.退款中)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.退款完成)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
                case ACOOLYConstant.Sevice.ConfirmGasOrder:
                    var confirmGasOrderResponse = JsonConvert.DeserializeObject<ConfirmGasOrderResponse>(body);
                    orderNo = confirmGasOrderResponse.GasChargeOrder.OutOrderNo;
                    acoolyOrderNo = confirmGasOrderResponse.GasChargeOrder.BusiOrderNo;
                    payAmount = confirmGasOrderResponse.GasChargeOrder.PayAmount;
                    _logger.LogError("ACOOLY回调通处理结果状态:" + confirmGasOrderResponse.GasChargeOrder.Status);
                    if (!confirmGasOrderResponse.Success
                     || (confirmGasOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmGasOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.充值成功)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已完成;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.退款中)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.退款完成)
                    {
                        status = LifePayOrderStatusEnum.已完成;
                        acoolyStatus = ACOOLYStatusEnum.已退款;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
                default:
                    break;
                    throw new UserFriendlyException("ACOOLY回调通处理类型不存在");
            }
            await _lifePayService.ACOOLYOrderNotifyHandler(orderNo, acoolyOrderNo, status);
            await _lifePayService.ACOOLYOrderNotifyHandler(orderNo, acoolyOrderNo, status, acoolyStatus, payAmount, refundApplyRemark);
        }
    }
}