using LifePayment.Domain.Shared; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System.Threading.Tasks; namespace LifePayment.Domain; public class ACOOLYManager : ACOOLYClient, IACOOLYManager { private readonly ILogger _logger; private readonly ACOOLYOption _options; public ACOOLYManager(ILogger logger, IOptionsMonitor optionsMonitor) : base(logger, optionsMonitor) { _logger = logger; _options = optionsMonitor.CurrentValue; } #region 燃气 /// /// 获取燃气面值 /// /// /// public async Task GasParValue(GasParValueRequestInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.GasParValue); return await PostAsync(input); } public async Task GasOrgType(GasOrgTypeRequestInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.QueryGasOrgType); return await PostAsync(input); } /// /// 提交燃气订单 /// /// /// public async Task ConfirmGasOrder(ConfirmGasOrderRequestInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmGasOrder); return await PostAsync(input); } #endregion #region 电费 /// /// 获取电费面值 /// /// /// public async Task ElectricParValue(ACOOLYRequestBaseInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.ElectricParValue); #if DEBUG //return new ElectricParValueResponse //{ // Code = ACOOLYConstant.Code.SUCCESS, // ElectricParValue = new List() // { // new ElectricParValueOutput() // { // AreaName = "北京", // Comments = "测试数据", // ElectricType = "guowang", // ParValue = "100,200,300", // Rate = 0.93m // }, // new ElectricParValueOutput() // { // AreaName = "上海", // Comments = "测试数据", // ElectricType = "nanwang", // ParValue = "100,200,300", // Rate = 0.93m // } // }, // RequestNo = input.RequestNo, // Service = input.Service, // PartnerId = input.PartnerId, // Success = "true", //}; #endif return await PostAsync(input); } /// /// 获取电费充值区域 /// /// /// public async Task GetElectricSupportArea(ACOOLYRequestBaseInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.ElectricSupportArea); return await PostAsync(input); } /// /// 提交电费订单 /// /// /// public async Task ConfirmElectricOrder(ConfirmElectricOrderRequestInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmElectricOrder); #if DEBUG //return new ConfirmElectricOrderResponse //{ // Code = ACOOLYConstant.Code.PROCESSING, // ElectricChargeOrder = new ElectricChargeOrderOutput // { // AreaName = input.Province, // ElectricAccount = input.ElectricAccount, // ElectricType = input.ElectricType, // OutOrderNo = input.OutOrderNo, // BusiOrderNo = "Test000000001", // ParValue = input.ParValue, // PayAmount = input.ParValue, // Status = ACOOLYConstant.Code.PROCESSING, // StatusText = "处理中" // }, // RequestNo = input.RequestNo, // Service = input.Service, // PartnerId = input.PartnerId, // Success = true, //}; #endif return await PostAsync(input); } #endregion #region 话费 /// /// 获取话费面值 /// /// /// public async Task PhoneParValue(ACOOLYRequestBaseInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.PhoneParValue); #if DEBUG //return new PhoneParValueResponse //{ // Code = ACOOLYConstant.Code.SUCCESS, // PhoneParValue = new List() // { // new PhoneParValueOutput() // { // IspCode="yidong", // IspName="移动", // PhoneSection="", // Comments= "测试数据", // ParValue = "100,200,300", // Rate = 0.93m // }, // new PhoneParValueOutput() // { // IspCode="dianxin", // IspName="电信", // PhoneSection="", // Comments= "测试数据", // ParValue = "100,200,300", // Rate = 0.93m // }, // new PhoneParValueOutput() // { // IspCode="liantong", // IspName="联通", // PhoneSection="", // Comments= "测试数据", // ParValue = "100,200,300", // Rate = 0.93m // }, // }, // RequestNo = input.RequestNo, // Service = input.Service, // PartnerId = input.PartnerId, // Success = true, //}; #endif return await PostAsync(input); } /// /// 提交话费订单 /// /// /// public async Task ConfirmPhoneOrder(ConfirmPhoneOrderRequestInput input) { SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmPhoneOrder); #if DEBUG //return new ConfirmPhoneOrderResponse //{ // Code = ACOOLYConstant.Code.PROCESSING, // PhoneChargeOrder = new PhoneChargeOrderOutput() // { // OutOrderNo = input.OutOrderNo, // BusiOrderNo = "Test000000001", // ParValue = input.ParValue, // PayAmount = input.ParValue, // Status = ACOOLYConstant.Code.PROCESSING, // StatusText = "处理中", // }, // RequestNo = input.RequestNo, // Service = input.Service, // PartnerId = input.PartnerId, // Success = true, //}; #endif return await PostAsync(input); } #endregion #region 私有 private void SetBaseInfo(ACOOLYRequestBaseInput input, string service) { input.RequestNo = GuidGenerator.Create().ToString(); input.Service = service; input.PartnerId = _options.PartnerId; input.NotifyUrl = _options.NotifyUrl + ACOOLYConstant.NotifyUrl; } #endregion }