Startup.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Security.Cryptography.X509Certificates;
  3. using System.Text.Encodings.Web;
  4. using System.Text.Unicode;
  5. using Essensoft.AspNetCore.Payment.Alipay;
  6. using Essensoft.AspNetCore.Payment.JDPay;
  7. using Essensoft.AspNetCore.Payment.LianLianPay;
  8. using Essensoft.AspNetCore.Payment.QPay;
  9. using Essensoft.AspNetCore.Payment.UnionPay;
  10. using Essensoft.AspNetCore.Payment.WeChatPay;
  11. using Microsoft.AspNetCore.Builder;
  12. using Microsoft.AspNetCore.Hosting;
  13. using Microsoft.AspNetCore.Http;
  14. using Microsoft.AspNetCore.Mvc;
  15. using Microsoft.Extensions.Configuration;
  16. using Microsoft.Extensions.DependencyInjection;
  17. using Microsoft.Extensions.Logging;
  18. namespace WebApplicationSample
  19. {
  20. public class Startup
  21. {
  22. public Startup(IConfiguration configuration)
  23. {
  24. Configuration = configuration;
  25. }
  26. public IConfiguration Configuration { get; }
  27. // This method gets called by the runtime. Use this method to add services to the container.
  28. public void ConfigureServices(IServiceCollection services)
  29. {
  30. services.Configure<CookiePolicyOptions>(options =>
  31. {
  32. // This lambda determines whether user consent for non-essential cookies is needed for a given request.
  33. options.CheckConsentNeeded = context => true;
  34. options.MinimumSameSitePolicy = SameSiteMode.None;
  35. });
  36. services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
  37. services.AddAlipay();
  38. services.AddAlipayHttpClient();
  39. services.AddJDPay();
  40. services.AddJDPayHttpClient();
  41. services.AddQPay();
  42. services.AddQPayHttpClient();
  43. //services.AddQPayCertificateHttpClient(new X509Certificate2(Convert.FromBase64String(Configuration["QPay:Certificate"]), Configuration["QPay:MchId"], X509KeyStorageFlags.MachineKeySet));
  44. //services.AddQPayCertificateHttpClient("Default", new X509Certificate2(Convert.FromBase64String(Configuration["QPay:Certificate"]), Configuration["QPay:MchId"], X509KeyStorageFlags.MachineKeySet));
  45. services.AddUnionPay();
  46. services.AddUnionPayHttpClient();
  47. services.AddWeChatPay();
  48. services.AddWeChatPayHttpClient();
  49. //services.AddWeChatPayCertificateHttpClient(new X509Certificate2(Convert.FromBase64String(Configuration["WeChatPay:Certificate"]), Configuration["WeChatPay:MchId"], X509KeyStorageFlags.MachineKeySet));
  50. //services.AddWeChatPayCertificateHttpClient("Default", new X509Certificate2(Convert.FromBase64String(Configuration["WeChatPay:Certificate"]), Configuration["WeChatPay:MchId"], X509KeyStorageFlags.MachineKeySet));
  51. services.AddLianLianPay();
  52. services.AddLianLianPayHttpClient();
  53. services.Configure<AlipayOptions>(Configuration.GetSection("Alipay"));
  54. services.Configure<JDPayOptions>(Configuration.GetSection("JDPay"));
  55. services.Configure<QPayOptions>(Configuration.GetSection("QPay"));
  56. services.Configure<UnionPayOptions>(Configuration.GetSection("UnionPay"));
  57. services.Configure<WeChatPayOptions>(Configuration.GetSection("WeChatPay"));
  58. services.Configure<LianLianPayOptions>(Configuration.GetSection("LianLianPay"));
  59. services.AddWebEncoders(opt =>
  60. {
  61. opt.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All);
  62. });
  63. }
  64. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  65. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  66. {
  67. if (env.IsDevelopment())
  68. {
  69. app.UseDeveloperExceptionPage();
  70. }
  71. else
  72. {
  73. app.UseExceptionHandler("/Home/Error");
  74. app.UseHsts();
  75. }
  76. app.UseStaticFiles();
  77. app.UseCookiePolicy();
  78. app.UseMvc(routes =>
  79. {
  80. routes.MapRoute(
  81. name: "default",
  82. template: "{controller=Home}/{action=Index}/{id?}");
  83. });
  84. }
  85. }
  86. }