NewGaoKaoApi/New_College.Api/Controllers/Front/XETongController.cs

79 lines
2.4 KiB
C#

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
{
/// <summary>
/// 小鹅通
/// </summary>
[Route("api/front/[controller]/[action]")]
[ApiController]
public class XETongController : ControllerBase
{
public XETongController()
{
}
/// <summary>
/// 回调
/// </summary>
/// <param name="objreq"></param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<string>> hooks()
{
using (var reader = new StreamReader(Request.Body))
{
try
{
var builder = reader.ReadToEnd();
if (string.IsNullOrEmpty(builder.ToString())) { return new MessageModel<string>() { 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<string>()
{
msg = "ok",
response = "ok",
success = true,
};
}
catch (Exception ex)
{
return new MessageModel<string>()
{
response = ex.Message,
msg = "ok"
};
}
}
}
}
}