ServiceCollectionExtensions.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Microsoft.Extensions.DependencyInjection;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Senparc.Weixin.RegisterServices;
  8. using Microsoft.Extensions.Configuration;
  9. using Microsoft.AspNetCore.Builder;
  10. using Senparc.Weixin.AspNet;
  11. using Senparc.Weixin.WxOpen;
  12. using Senparc.CO2NET.AspNet;
  13. using Microsoft.AspNetCore.Hosting;
  14. using Microsoft.Extensions.Options;
  15. using Senparc.CO2NET;
  16. using Senparc.Weixin;
  17. using Senparc.Weixin.Entities;
  18. namespace Hotline.WeChat;
  19. public static class ServiceCollectionExtensions
  20. {
  21. public static IServiceCollection AddWeChatService(this IServiceCollection services)
  22. {
  23. var configuration = new ConfigurationManager();
  24. configuration.AddInMemoryCollection(new Dictionary<string, string>
  25. {
  26. { "SenparcWeixinSetting:WxOpenAppId", "#{WxOpenAppId}#" },
  27. { "SenparcWeixinSetting:WxOpenAppSecret", "#{WxOpenAppSecret}#" },
  28. { "SenparcWeixinSetting:WxOpenToken", "#{WxOpenToken}#" },
  29. { "SenparcWeixinSetting:WxOpenEncodingAESKey", "#{WxOpenEncodingAESKey}#" }
  30. });
  31. services.AddMemoryCache();
  32. services.AddSenparcWeixin(configuration);
  33. return services;
  34. }
  35. public static void UseWeChat(this WebApplication app)
  36. {
  37. var registerService = app.UseSenparcWeixin(app.Environment,
  38. null /* 不为 null 则覆盖 appsettings 中的 SenpacSetting 配置*/,
  39. null /* 不为 null 则覆盖 appsettings 中的 SenpacWeixinSetting 配置*/,
  40. register => { },
  41. (register, weixinSetting) =>
  42. {
  43. //注册公众号信息(可以执行多次,注册多个小程序)
  44. register.RegisterWxOpenAccount(weixinSetting, "微信小程序");
  45. });
  46. }
  47. }