79 lines
2.4 KiB
C#
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"
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|