using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.WeChatPay.Core; using Yi.Framework.WeChatPay.Exceptions; using Yi.Framework.WeChatPay.Options; namespace Yi.Framework.WeChatPay.WebCore { public static class PayServiceExtensions { public static IServiceCollection AddWeChatPayService(this IServiceCollection services,Action configure) { var option= new PayOptions(); configure(option); if (option.IsFileConfig) { option=PayHelper.GetPayOptions(option.ConfigPath); } if (option.AppID == null) { throw new PayException("AppId为空值"); } if (option.MchID == null) { throw new PayException("MchID为空值"); } if (option.Key == null) { throw new PayException("Key为空值"); } if (option.NotifyUrl == null) { throw new PayException("NotifyUrl为空值"); } services.AddSingleton(option); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddHttpContextAccessor(); return services; } } }