From eea07b9c06f8a9070abe23816d02ae4fd73b4fa3 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期三, 25 六月 2025 14:48:18 +0800
Subject: [PATCH] 1.金蝶及时库存调用
---
service/QC/OAJyService.cs | 74 ++++++++++++++++++++++---------------
1 files changed, 44 insertions(+), 30 deletions(-)
diff --git a/service/QC/OAJyService.cs b/service/QC/OAJyService.cs
index cc9593b..c7fb134 100644
--- a/service/QC/OAJyService.cs
+++ b/service/QC/OAJyService.cs
@@ -11,6 +11,13 @@
using System.Security.Cryptography;
using System.Text;
using static Azure.Core.HttpHeader;
+using System.Security.Cryptography;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Security;
+using System.Security.Cryptography.X509Certificates;
+using Org.BouncyCastle.Crypto.Parameters;
+using Org.BouncyCastle.Security;
namespace NewPdaSqlServer.service.QC;
@@ -23,34 +30,39 @@
// private const string SPK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB";
private const string HOST = "http://192.168.1.149:8099";
- private const string SPK = @"-----BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEc
-E94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlI
-JBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlb
-IkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9Hwg
-rzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M
-9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116L
-twIDAQAB
------END PUBLIC KEY-----";
+ private const string SPK = @"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB";
public static class RsaHelper
{
public static string Encrypt(string plainText, string publicKeyPem)
{
- // 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡
- var rsa = RSA.Create();
- rsa.ImportFromPem(publicKeyPem); // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶
+ //// 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡
+ //var rsa = RSA.Create();
+ //rsa.ImportFromPem(publicKeyPem); // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶
- var parameters = rsa.ExportParameters(false);
- string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>";
+ //var parameters = rsa.ExportParameters(false);
+ //string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>";
- using var rsaProvider = new RSACryptoServiceProvider();
- rsaProvider.FromXmlString(publicKeyXml); // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜
+ //using var rsaProvider = new RSACryptoServiceProvider();
+ //rsaProvider.FromXmlString(publicKeyXml); // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜
- var data = Encoding.UTF8.GetBytes(plainText);
- var encrypted = rsaProvider.Encrypt(data, false);
- return Convert.ToBase64String(encrypted);
+ //var data = Encoding.UTF8.GetBytes(plainText);
+ //var encrypted = rsaProvider.Encrypt(data, false);
+ //return Convert.ToBase64String(encrypted);
+
+ RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKeyPem));
+ string XML = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>",
+ Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),
+ Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));
+ string encryptedContent = string.Empty;
+ using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
+ {
+ rsa.FromXmlString(XML);
+ byte[] encryptedData = rsa.Encrypt(Encoding.Default.GetBytes(plainText), false);
+ encryptedContent = Convert.ToBase64String(encryptedData);
+ }
+ return encryptedContent;
}
}
@@ -78,12 +90,14 @@
public string GetToken()
{
-
-;
+ var userId = "1268";
+ var encryptedUserId = RsaHelper.Encrypt(userId, SPK);
+ ;
var headers = new Dictionary<string, string>
{
["appid"] = APPID,
- ["secret"] = RsaHelper.Encrypt(SECRET, SPK)
+ ["secret"] = RsaHelper.Encrypt(SECRET, SPK),
+ ["userId"] = encryptedUserId
};
try
@@ -196,12 +210,12 @@
//}
// 鍔犲瘑澶勭悊
- var userId = "FRadmin";
+ var userId = "1268";
var encryptedUserId = RsaHelper.Encrypt(userId, SPK);
string strToken = GetToken();
- // 鏇挎崲鍘熸湁鐨勬祴璇曟暟鎹瀯寤�
+ // 鏇挎崲鍘熸湁鐨勬祴mainDataDict璇曟暟鎹瀯寤�
mainDataDict = BuildMainDataFromQuery(query);
@@ -249,13 +263,13 @@
var request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.Timeout = 20000;
- request.ContentType = "application/json; charset=utf-8"; // 淇敼涓篔SON鏍煎紡
+ request.ContentType = "application/x-www-form-urlencoded"; // 淇敼涓篔SON鏍煎紡
// 鏋勫缓璇锋眰澶�
- request.Headers.Add("appid", APPID);
- request.Headers.Add("token", token);
- request.Headers.Add("Content-Type", APPID);
- request.Headers.Add("userId", encryptedUserId);
+ request.Headers.Set("appid", APPID);
+ request.Headers.Set("token", token);
+ request.Headers.Set("Content-Type", "application/x-www-form-urlencoded");
+ request.Headers.Set("userId", encryptedUserId);
// 鍋囪闇�瑕佸姞瀵嗙殑userid浠庡叾浠栧湴鏂硅幏鍙栵紝杩欓噷闇�瑕佽ˉ鍏呰幏鍙栭�昏緫
// 鏋勫缓璇锋眰浣�
@@ -327,7 +341,7 @@
var mainData = new Dictionary<string, object>
{
// 琛ㄧ粨鏋勫畾涔�
- ["tableDBName"] = "formtable_main_1356_dt1",
+ ["tableDBName"] = "formtable_main_33",
["workflowRequestTableRecords"] = new List<Dictionary<string, object>>
{
new Dictionary<string, object>
--
Gitblit v1.9.3