using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.WeChatPay.Domain; using Yi.Framework.WeChatPay.Domain.Config; using Yi.Framework.WeChatPay.Domain.Notify; using Yi.Framework.WeChatPay.Exceptions; using Yi.Framework.WeChatPay.Helper; using Yi.Framework.WeChatPay.Options; namespace Yi.Framework.WeChatPay.Extensions { public static class PayServiceExtensions { public static IServiceCollection AddWeChatPayServer(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; } } }