WxOpenController.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Microsoft.AspNetCore.Mvc;
  2. using System.Web;
  3. namespace ZR.Admin.WebApi.Controllers
  4. {
  5. /// <summary>
  6. /// 微信公众号
  7. /// </summary>
  8. [Route("[controller]/[action]")]
  9. [AllowAnonymous]
  10. public class WxOpenController : BaseController
  11. {
  12. /// <summary>
  13. /// 获取签名
  14. /// </summary>
  15. /// <param name="url"></param>
  16. /// <returns></returns>
  17. [Log(Title = "获取微信签名")]
  18. [HttpGet]
  19. public IActionResult GetSignature(string url = "")
  20. {
  21. url = HttpUtility.UrlDecode(url);
  22. var appId = AppSettings.App(new string[] { "WxOpen", "AppID" });
  23. var noncestr = Guid.NewGuid().ToString().Replace("-", "");
  24. var timestamp = DateTimeHelper.GetUnixTimeSeconds(DateTime.Now);
  25. var ticketResult = WxHelper.GetTicket();
  26. if (appId.IsEmpty()) return ToResponse(ResultCode.CUSTOM_ERROR, "appId未配置");
  27. if (ticketResult?.errcode != 0)
  28. {
  29. return ToResponse(ResultCode.CUSTOM_ERROR, "获取配置失败");
  30. }
  31. var signature = WxHelper.GetSignature(ticketResult.ticket, timestamp.ToString(), noncestr, url);
  32. return SUCCESS(new { appId, signature, noncestr, timestamp, url });
  33. }
  34. }
  35. }