diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Service/SapOpenInterface/SapOpenInterfaceService.cs b/admin.net.pro/Admin.NET/Vistar.Application/Service/SapOpenInterface/SapOpenInterfaceService.cs index 6780bee..1d2074d 100644 --- a/admin.net.pro/Admin.NET/Vistar.Application/Service/SapOpenInterface/SapOpenInterfaceService.cs +++ b/admin.net.pro/Admin.NET/Vistar.Application/Service/SapOpenInterface/SapOpenInterfaceService.cs @@ -5,6 +5,7 @@ // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; +using Admin.NET.Core.Service; using Furion.DependencyInjection; using Furion.DynamicApiController; using Microsoft.AspNetCore.Authentication.JwtBearer; @@ -14,6 +15,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Vistar.Application.Const; @@ -36,6 +38,28 @@ public class SapOpenInterfaceService : IDynamicApiController, ITransient _obj132Rep = obj132Rep; _solidWorksManageService = solidWorksManageService; } + + /// + /// 生成签名 🔖 + /// + /// + /// + [DisplayName("生成签名")] + [AllowAnonymous] + public string GenerateSignature(GenerateSignatureInput input) + { + // 密钥 + var appSecretByte = Encoding.UTF8.GetBytes(input.AccessSecret); + + // 拼接参数 + var parameter = $"{input.Method.ToString().ToUpper()}&{input.Url}&{input.AccessKey}&{input.Timestamp}&{input.Nonce}"; + // 使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),以appSecretByte 作为密钥,对上面拼接的参数进行计算签名,所得签名进行 Base-64 编码 + using HMAC hmac = new HMACSHA256(); + hmac.Key = appSecretByte; + var sign = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(parameter))); + return sign; + } + /// /// SAP创建、修改客户档案 ///