using Microsoft.AspNetCore.Mvc; using New_College.Model.ViewModels; using New_College.Model; using System.Collections.Generic; using System.Threading.Tasks; using System.Text.Json; using System.Xml.Linq; using System; using System.IO; namespace New_College.Api.Controllers { /// /// 小鹅通 /// [Route("api/front/[controller]/[action]")] [ApiController] public class XETongController : ControllerBase { public XETongController() { } /// /// 回调 /// /// /// [HttpPost] public async Task> hooks() { using (var reader = new StreamReader(Request.Body)) { try { var builder = reader.ReadToEnd(); if (string.IsNullOrEmpty(builder.ToString())) { return new MessageModel() { response = "XML data is empty or not provided.", success = true, msg = "ok" }; } // 使用XDocument解析XML字符串 XDocument xdoc = XDocument.Parse(builder.ToString()); // 访问XML元素 var encryptElement = xdoc.Root.Element("Encrypt"); var encryptValue = encryptElement?.Value; var msgSignatureElement = xdoc.Root.Element("MsgSignature"); var msgSignatureValue = msgSignatureElement?.Value; var timeStampElement = xdoc.Root.Element("TimeStamp"); var timeStampValue = timeStampElement?.Value; var nonceElement = xdoc.Root.Element("Nonce"); var nonceValue = nonceElement?.Value; // 这里可以根据需要处理解析后的数据,例如保存到数据库或进行其他业务逻辑处理 return new MessageModel() { msg = "ok", response = "ok", success = true, }; } catch (Exception ex) { return new MessageModel() { response = ex.Message, msg = "ok" }; } } } } }