WechatApiHttpClient.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using Furion.DependencyInjection;
  2. using Furion.FriendlyException;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.Extensions.Options;
  5. using SKIT.FlurlHttpClient;
  6. using SKIT.FlurlHttpClient.Wechat.Api;
  7. namespace Admin.NET.Core.Service
  8. {
  9. /// <summary>
  10. /// 微信API客户端
  11. /// </summary>
  12. [ApiDescriptionSettings(false)]
  13. public partial class WeChatApiHttpClient : ISingleton
  14. {
  15. public readonly WechatOptions _weChatOptions;
  16. public WeChatApiHttpClient(IOptions<WechatOptions> weChatOptions)
  17. {
  18. _weChatOptions = weChatOptions.Value;
  19. }
  20. /// <summary>
  21. /// 微信公众号
  22. /// </summary>
  23. /// <returns></returns>
  24. public WechatApiClient CreateWechatClient()
  25. {
  26. if (string.IsNullOrEmpty(_weChatOptions.WechatAppId) || string.IsNullOrEmpty(_weChatOptions.WechatAppSecret))
  27. throw Oops.Oh("微信公众号配置错误");
  28. var wechatApiClient = new WechatApiClient(new WechatApiClientOptions()
  29. {
  30. AppId = _weChatOptions.WechatAppId,
  31. AppSecret = _weChatOptions.WechatAppSecret,
  32. });
  33. wechatApiClient.Configure(settings =>
  34. {
  35. settings.JsonSerializer = new FlurlNewtonsoftJsonSerializer();
  36. });
  37. return wechatApiClient;
  38. }
  39. /// <summary>
  40. /// 微信小程序
  41. /// </summary>
  42. /// <returns></returns>
  43. public WechatApiClient CreateWxOpenClient()
  44. {
  45. if (string.IsNullOrEmpty(_weChatOptions.WxOpenAppId) || string.IsNullOrEmpty(_weChatOptions.WxOpenAppSecret))
  46. throw Oops.Oh("微信小程序配置错误");
  47. var WechatApiClient = new WechatApiClient(new WechatApiClientOptions()
  48. {
  49. AppId = _weChatOptions.WxOpenAppId,
  50. AppSecret = _weChatOptions.WxOpenAppSecret
  51. });
  52. WechatApiClient.Configure(settings =>
  53. {
  54. settings.JsonSerializer = new FlurlNewtonsoftJsonSerializer();
  55. });
  56. return WechatApiClient;
  57. }
  58. }
  59. }