WxController.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Microsoft.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.Extensions.Options;
  4. using Ropin.Inspection.Api.Common;
  5. using Ropin.Inspection.Api.Common.Options;
  6. using Ropin.Inspection.Api.Wx;
  7. using Ropin.Inspection.Common.Helper;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Net.Http;
  12. using System.Threading.Tasks;
  13. namespace Ropin.Inspection.Api.Controllers
  14. {
  15. public class WxController : BaseController
  16. {
  17. private readonly IOptionsMonitor<WXOptions> _options;
  18. private readonly IHttpClientFactory _httpClientFactory;
  19. public WxController(IOptionsMonitor<WXOptions> options, IHttpClientFactory httpClientFactory)
  20. {
  21. _options = options;
  22. _httpClientFactory = httpClientFactory;
  23. }
  24. // GET: api/<controller>
  25. [HttpGet]
  26. public ActionResult Get(SignatureModel signatureModel)
  27. {
  28. signatureModel.Token = _options.Get("WXOptions").Token;
  29. string rtnStr;
  30. if (SignatureHelper.Check(signatureModel))
  31. {
  32. rtnStr = signatureModel.Echostr;
  33. }
  34. else
  35. {
  36. rtnStr = signatureModel.Signature + signatureModel.Timestamp + signatureModel.Nonce + signatureModel.Echostr;
  37. }
  38. return Content(rtnStr);
  39. }
  40. /// <summary>
  41. /// 获取ai公众号的openID
  42. /// </summary>
  43. /// <returns></returns>
  44. [HttpGet("GetOpenId")]
  45. [AllowAnonymous]
  46. public async Task<ApiResult> GetOpenId(string jsCode)
  47. {
  48. var openid = await (new WeChatHelper(_httpClientFactory)).GetOpenIdByCodeAsync(jsCode);
  49. return new ApiResult<string>(openid, ReturnCode.Success);
  50. }
  51. }
  52. }