From 111ab2705ea9a51bcb3f13da2264e39a5939ea89 Mon Sep 17 00:00:00 2001 From: Billy <641833868@qq.com> Date: Wed, 22 Oct 2025 14:59:47 +0800 Subject: [PATCH] up --- addons/shopro/library/ccblife/CcbHttpClient.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/shopro/library/ccblife/CcbHttpClient.php b/addons/shopro/library/ccblife/CcbHttpClient.php index a403d3b..cfef870 100644 --- a/addons/shopro/library/ccblife/CcbHttpClient.php +++ b/addons/shopro/library/ccblife/CcbHttpClient.php @@ -61,8 +61,14 @@ class CcbHttpClient } Log::info('使用公钥加密(前64字符): ' . substr($encryptPublicKey, 0, 64)); + + // 第一次加密和BASE64编码 $encryptedMessage = CcbRSA::encryptForCcb($message, $encryptPublicKey); + // 第二次BASE64编码(按照建行demo要求) + // demo1.java第120行: enc_msg = encoder.encode(enc_msg.getBytes("UTF-8")); + $encryptedMessage = base64_encode($encryptedMessage); + // 移除BASE64中的换行符 $encryptedMessage = str_replace(["\r", "\n", "\r\n"], '', $encryptedMessage); @@ -210,8 +216,12 @@ class CcbHttpClient Log::info('加密响应参数 cnt: ' . $responseData['cnt']); Log::info('加密响应参数 mac: ' . $responseData['mac']); - // 解密响应内容 - $decryptedContent = CcbRSA::decryptFromCcb($responseData['cnt'], $this->config['private_key']); + // 第一次BASE64解码(按照建行demo要求) + // demo1.java第139行: enc_msg = new String(decoder.decodeBuffer(enc_msg),"UTF-8"); + $cntDecoded = base64_decode($responseData['cnt']); + + // 第二次解密和BASE64解码 + $decryptedContent = CcbRSA::decryptFromCcb($cntDecoded, $this->config['private_key']); // 📝 记录解密后的响应内容 Log::info('解密后响应内容: ' . $decryptedContent);