From a56510c35a0bc211f4ee17b5630f367dfa7a6208 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Tue, 9 Jul 2024 23:44:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?TASK:=E5=8F=98=E5=9B=9Edevelop=E7=8E=AF?= =?UTF-8?q?=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/common/RabbitMQ/MQConfig.java | 12 ++++++------ src/main/java/com/ai/da/common/task/AccountTask.java | 4 ++-- src/main/resources/application.properties | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java b/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java index b7ceb9e5..7f9e4b18 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java @@ -12,23 +12,23 @@ public class MQConfig { // public static final String GENERATE_QUEUE = "generate-queue-test"; // ================================================================== // public static final String GENERATE_QUEUE = "generate-queue-local"; - public static final String GENERATE_QUEUE = "generate-queue-prod"; + public static final String GENERATE_QUEUE = "generate-queue-dev"; // public static final String GENERATE_QUEUE = "generate-queue-prod"; // // public static final String SR_QUEUE = "SR-queue-local"; - public static final String SR_QUEUE = "SR-queue-prod"; + public static final String SR_QUEUE = "SR-queue-dev"; // public static final String SR_QUEUE = "SR-queue-prod"; // // public static final String SR_RESULT_QUEUE = "SuperResolution-local"; - public static final String SR_RESULT_QUEUE = "SuperResolution-prod"; + public static final String SR_RESULT_QUEUE = "SuperResolution-dev"; // public static final String SR_RESULT_QUEUE = "SuperResolution-prod"; // // public static final String GENERATE_RESULT_QUEUE = "GenerateImage-local"; - public static final String GENERATE_RESULT_QUEUE = "GenerateImage-prod"; + public static final String GENERATE_RESULT_QUEUE = "GenerateImage-dev"; - public static final String TO_PRODUCT_IMAGE_RESULT_QUEUE = "ToProductImage-prod"; + public static final String TO_PRODUCT_IMAGE_RESULT_QUEUE = "ToProductImage-dev"; - public static final String RELIGHT_RESULT_QUEUE = "Relight-prod"; + public static final String RELIGHT_RESULT_QUEUE = "Relight-dev"; public MQConfig() { } diff --git a/src/main/java/com/ai/da/common/task/AccountTask.java b/src/main/java/com/ai/da/common/task/AccountTask.java index 902d74f9..32b0eb70 100644 --- a/src/main/java/com/ai/da/common/task/AccountTask.java +++ b/src/main/java/com/ai/da/common/task/AccountTask.java @@ -15,7 +15,7 @@ public class AccountTask { private AccountService accountService; /** 每周日晚上刷新 年付用户、月付用户的积分 */ - @Scheduled(cron = "59 59 23 ? * SUN") +// @Scheduled(cron = "59 59 23 ? * SUN") // @Scheduled(cron = "59 59 23 * * ?") public void refreshCreditsMonthly(){ log.info("每周日晚11:59:59刷新付费用户积分为 6000"); @@ -23,7 +23,7 @@ public class AccountTask { } // todo 多久执行一次? - @Scheduled(cron = "0 */5 * * * *") // Run every 5 minutes +// @Scheduled(cron = "0 */5 * * * *") // Run every 5 minutes public void getPaidUser(){ // 获取code-create 表中 指定日期之后 订单状态为wc-processing的订单 accountService.extendValidityForCC(); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 605b072c..974fee23 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -5,4 +5,4 @@ #spring.profiles.active=prod #����application-dev�ļ�(��������) -spring.profiles.active=prod +spring.profiles.active=dev From 46fbbd747e5c0bac5c23aa7c852f66a7840055cb Mon Sep 17 00:00:00 2001 From: xupei Date: Wed, 10 Jul 2024 10:47:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?alipay-hk=20=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/AlipayHKEncryptionUtil.java | 44 +++++++++++++------ src/main/resources/files/COD-public-key.txt | 9 ++++ ...-2088841167357411-merchant.private.key.txt | 28 ++++++++++++ ...Create Limited.merchant.aqs.public.key.pem | 9 ++++ 4 files changed, 76 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/files/COD-public-key.txt create mode 100644 src/main/resources/files/Code-Create Limited-2088841167357411-merchant.private.key.txt create mode 100644 src/main/resources/files/Code-Create Limited.merchant.aqs.public.key.pem diff --git a/src/main/java/com/ai/da/common/utils/AlipayHKEncryptionUtil.java b/src/main/java/com/ai/da/common/utils/AlipayHKEncryptionUtil.java index 3b706563..acd720d4 100644 --- a/src/main/java/com/ai/da/common/utils/AlipayHKEncryptionUtil.java +++ b/src/main/java/com/ai/da/common/utils/AlipayHKEncryptionUtil.java @@ -1,5 +1,6 @@ package com.ai.da.common.utils; +import cn.hutool.core.io.resource.ClassPathResource; import com.ai.da.model.dto.AlipayHKParametersDTO; import com.ai.da.model.dto.AlipayHKRequestDTO; import com.alibaba.fastjson.JSONObject; @@ -14,6 +15,7 @@ import org.bouncycastle.crypto.util.PublicKeyFactory; import org.bouncycastle.openssl.PEMParser; import org.bouncycastle.util.io.pem.PemObject; import org.bouncycastle.util.io.pem.PemReader; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -165,7 +167,23 @@ public class AlipayHKEncryptionUtil { * @throws Exception */ private static PrivateKey readPrivateKeyFromFile(String filePath) throws Exception { - BufferedReader reader = new BufferedReader(new FileReader(filePath)); + ClassPathResource classPathResource = new ClassPathResource(filePath); + InputStream inputstream = classPathResource.getStream(); + String privateKeyContent = getString(inputstream); + + // 进行 Base64 解码 + byte[] privateKeyBytes = Base64.getDecoder().decode(privateKeyContent); + + // 根据 PKCS8 格式的私钥字节数组构造私钥对象 + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); + return keyFactory.generatePrivate(keySpec); + } + + @NotNull + private static String getString(InputStream inputstream) throws IOException { + BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream)); +// BufferedReader reader = new BufferedReader(new FileReader(filePath)); StringBuilder keyBuffer = new StringBuilder(); String line; @@ -180,14 +198,7 @@ public class AlipayHKEncryptionUtil { .replace("-----BEGIN PRIVATE KEY-----", "") .replace("-----END PRIVATE KEY-----", "") .replaceAll("\\s+", ""); // 去除空格、换行等字符 - - // 进行 Base64 解码 - byte[] privateKeyBytes = Base64.getDecoder().decode(privateKeyContent); - - // 根据 PKCS8 格式的私钥字节数组构造私钥对象 - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); - return keyFactory.generatePrivate(keySpec); + return privateKeyContent; } /** @@ -233,7 +244,7 @@ public class AlipayHKEncryptionUtil { // 使用 RSA 公钥加密 AES 密钥 String rsaPublicKeyPath = publicKeyPath; - PublicKey publicKey = readPublicKey(new File(rsaPublicKeyPath)); + PublicKey publicKey = readPublicKey(rsaPublicKeyPath); Cipher rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // Cipher rsaCipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); @@ -313,11 +324,14 @@ public class AlipayHKEncryptionUtil { System.out.println("数字签名验证结果:" + signatureValid); } - public static PublicKey readPublicKey(File file) throws Exception { +// public static PublicKey readPublicKey(File file) throws Exception { + public static PublicKey readPublicKey(String fileName) throws Exception { KeyFactory factory = KeyFactory.getInstance("RSA"); - try (FileReader keyReader = new FileReader(file); - PemReader pemReader = new PemReader(keyReader)) { + ClassPathResource classPathResource = new ClassPathResource(fileName); + InputStream inputStream = classPathResource.getStream(); + BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream)); + try (PemReader pemReader = new PemReader(fileReader)) { PemObject pemObject = pemReader.readPemObject(); byte[] content = pemObject.getContent(); @@ -338,8 +352,10 @@ public class AlipayHKEncryptionUtil { Base64.Decoder decoder = Base64.getDecoder(); // Verify key try { + ClassPathResource classPathResource = new ClassPathResource(CODPublicKeyPath); + InputStream inputstream = classPathResource.getStream(); // 从指定的路径读取公钥文件 - InputStreamReader isrPub = new InputStreamReader(new FileInputStream(CODPublicKeyPath)); + InputStreamReader isrPub = new InputStreamReader(inputstream); PEMParser pemParserPub = new PEMParser(isrPub); // 使用 PEMParser 解析公钥文件 SubjectPublicKeyInfo pubInfo = (SubjectPublicKeyInfo) pemParserPub.readObject(); diff --git a/src/main/resources/files/COD-public-key.txt b/src/main/resources/files/COD-public-key.txt new file mode 100644 index 00000000..ec172ee3 --- /dev/null +++ b/src/main/resources/files/COD-public-key.txt @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymkBAWixxUi9IAeMWgsq + K92AzFbe0qzzYPdkoh15ymL2A5MkYH7asnhFwclgdiFmd9a0TbZP+t/SzWW8UUzN + 1pXoEp48R+eguGTt5xkJwb10+H6quVXF/Ezzid5yzVW3dcYRp8qUlFr0XBpvkK9l + FpPzh2+mwVEAsgBMXq/K50ZiX2dlkPZ7ffkVPWaK2ESIo3YgfM6dmiiza0hPWJ35 + UgTH5rwJ7vN3IdOJTlkQOvrIrj2ocPcrudeEwqybIbCGhgRBwQSBsXQOO4U//rE4 + VU+0LF/3uQgXkvVY1+a1JLiTncZYKGEQ/NtxM+dGtYWV2gPhQRyJ7Z77OX0XCbcn + zwIDAQAB +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/src/main/resources/files/Code-Create Limited-2088841167357411-merchant.private.key.txt b/src/main/resources/files/Code-Create Limited-2088841167357411-merchant.private.key.txt new file mode 100644 index 00000000..24cbf57d --- /dev/null +++ b/src/main/resources/files/Code-Create Limited-2088841167357411-merchant.private.key.txt @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDD+NUduhLJcb2Z +ryLwtIHdmjfh6Wn73E9umHmdPf6yF7IbDoTDBmIAfaPU/oiLgrka3fKGCkn/yHvW +QcL+Ry96/Uu+iIN9SbG5vPVvLtLfx+5++IE8p3RxcSDQggqFuJ+osebXeVIrOcTZ +s7nXCqGenTcagv2eJESiq712fcBvY1wVgilT6ERVQy+zdvwAOiS6wXF/51AueP+E +rNDHuPLkGH6JhLtO4LffeYgM/Th7eCl/WWLkiVMSoeJt7vWFe4bYV/IYW1qI2aQX +H1DYmvwgDfDv8jRORD9D191YBqq1l3Tw7VSjFrpydFvSK46dbXKBj3oA5ZiJ+Ttj +ZCtBRiOdAgMBAAECggEAUKl4Fs9C8lV1o+85Y3f4yBy1CbCIZhltPGlYDUe6MNWe +ApL8REW5Sthr+bx2uW2qAQv/yfosMTL0/eB9gSoNugLODXOlI4mUtI25O/U66M8j +NHHWx/9o51SYHBqaeCXg2Y+4I1KVZqNVigH26TNACMhPKQNnnpLxCT/FMSNbdLzo +wfFMyjN7R3Hc8ZB1C2zx+fLJm1DNZeOJOHAkW1LprlotRv6eq3lOwZaDDUTB5xhT +0Erev3djC/R08Fne1y09ukar8z0tX3Fm9SzHJDFVoh1HOYPWayCiAxOhip+JnFct +rtK5jjuB8DAP4Q1k12yOWUFwb6NOG9Hf/G6XExRPBQKBgQD1P2SnKD1IlNSrvVJn +2HzKnBVllVo50fbv7SpnP8H1B5vt2Qo/mgOGtzbeXyK4mcLFaWg9++BrsjTXwZFi +wmKeJgNI822DPhF5qQhK7Cc+WMwesufGrTnmRUOEFYehz9ffZBvMa1s/ObIEyLcr +tYitT74+nFdRPtr+8PN06QMEcwKBgQDMkGFWhSO7p7VMuV0H0uC1fj3GGtVvM+Ps +a9ASs0HBhQaOpberkKY9vgry6HoJ8CGvbrxlmc3JoYPRwKN3oQRYLvGSF96HAg9i +643FmVAWiVzHpjYX9fMJyCzXiOw6Qet8Zp3Ewaw9BBG0200Fj6/zGc8XEqNjIv5Q +DQ9MosRDrwKBgQCU5i5IRugeXy5YLxQPNKNfqDBdgrZLEK2qsgXithUencYQPIw6 +XVnyut43WO+NwN0+WmcN6xUwjfwDWuTYX0jc2Bt6eUFuQ4r8oKIGSybwdZ1IrjqG +p7nVkwwQ77lvhu98FB3EmRHHa1IoEW0Uvp0DDL1m6ikhjNYNn2FRA//u/QKBgGbY +a+eo1ldBMPha9Te6wLjeuEYCNa5L41p4tcrBDt0xeSN8k4QRHFNMWYrYcIrQjM77 +mIJoOjsWFgT9mfHKJToEl/VAROORmJS+Iq/mrYo3E0tY+DdBsygG2Oyf7Uw42iDY +IpfKW0Lt6c0IuIeEPwy0vBY4i6aK8Frkxf1ck9oHAoGBAKFQg/c36J6tjnttpmes +R/zijp1ROE+z+dMmm3icDhCDvvR6MnHa2Y9ittNWdEUosZk9FsFn62YNtJJV2SIN +DDn0ASLtBkeCd8yad5uzUb7Umci9V7TP5c0NE3DK95FmciLGOuRbFyq1Z8edHnaS +zgLnf4yb25eCMLEG0Z2ugN3C +-----END PRIVATE KEY----- diff --git a/src/main/resources/files/Code-Create Limited.merchant.aqs.public.key.pem b/src/main/resources/files/Code-Create Limited.merchant.aqs.public.key.pem new file mode 100644 index 00000000..d6a27eee --- /dev/null +++ b/src/main/resources/files/Code-Create Limited.merchant.aqs.public.key.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/jVHboSyXG9ma8i8LSB +3Zo34elp+9xPbph5nT3+sheyGw6EwwZiAH2j1P6Ii4K5Gt3yhgpJ/8h71kHC/kcv +ev1LvoiDfUmxubz1by7S38fufviBPKd0cXEg0IIKhbifqLHm13lSKznE2bO51wqh +np03GoL9niREoqu9dn3Ab2NcFYIpU+hEVUMvs3b8ADokusFxf+dQLnj/hKzQx7jy +5Bh+iYS7TuC333mIDP04e3gpf1li5IlTEqHibe71hXuG2FfyGFtaiNmkFx9Q2Jr8 +IA3w7/I0TkQ/Q9fdWAaqtZd08O1Uoxa6cnRb0iuOnW1ygY96AOWYifk7Y2QrQUYj +nQIDAQAB +-----END PUBLIC KEY-----