From 1e1ec2e1902606a5d6bdc3dd4558c765dfb475a5 Mon Sep 17 00:00:00 2001 From: bairubing Date: Thu, 17 Oct 2024 13:44:03 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E=E6=96=B0=E5=A2=9ESAP=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=AD=BE=E5=90=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SapOpenInterfaceService.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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创建、修改客户档案 ///