ServiceCollectionExtensions.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #if NETCOREAPP3_1
  2. using System;
  3. using Microsoft.AspNetCore.Builder;
  4. using Microsoft.AspNetCore.Http;
  5. using PaySharp.Core;
  6. using PaySharp.Core.Utils;
  7. namespace Microsoft.Extensions.DependencyInjection
  8. {
  9. public static class ServiceCollectionExtensions
  10. {
  11. /// <summary>
  12. /// 添加PaySharp
  13. /// </summary>
  14. /// <param name="services"></param>
  15. /// <param name="setupAction"></param>
  16. public static void AddPaySharp(this IServiceCollection services, Action<IGateways> setupAction)
  17. {
  18. services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
  19. services.AddScoped<IGateways>(a =>
  20. {
  21. var gateways = new Gateways();
  22. setupAction(gateways);
  23. return gateways;
  24. });
  25. }
  26. /// <summary>
  27. /// 使用PaySharp
  28. /// </summary>
  29. /// <param name="app"></param>
  30. /// <returns></returns>
  31. public static IApplicationBuilder UsePaySharp(this IApplicationBuilder app)
  32. {
  33. var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>();
  34. HttpUtil.Configure(httpContextAccessor);
  35. return app;
  36. }
  37. }
  38. }
  39. #endif