有可能是 addons/ewei_shopv2/plugin/app/core/wxapp/pkcs7Encoder.php 這個文件的加密代碼需要升級了
全部替換成下面這個
<?php require_once EWEI_SHOPV2_PLUGIN . "app/core/wxapp/errorCode.php"; /** * PKCS7Encoder class * * 提供基於PKCS7算法的加解密接口. */ class PKCS7Encoder { public static $block_size = 16; /** * 對需要加密的明文進行填充補位 * @param $text 需要進行填充補位操作的明文 * @return 補齊明文字符串 */ public function encode($text) { $block_size = PKCS7Encoder::$block_size; $text_length = strlen($text); $amount_to_pad = PKCS7Encoder::$block_size - $text_length % PKCS7Encoder::$block_size; if ($amount_to_pad == 0) { $amount_to_pad = PKCS7Encoder::block_size; } $pad_chr = chr($amount_to_pad); $tmp = ""; for ($index = 0; $index < $amount_to_pad; $index++) { $tmp .= $pad_chr; } return $text . $tmp; } /** * 對解密后的明文進行補位刪除 * @param decrypted 解密后的明文 * @return 刪除填充補位后的明文 */ public function decode($text) { $pad = ord(substr($text, -1)); if ($pad < 1 || 32 < $pad) { $pad = 0; } return substr($text, 0, strlen($text) - $pad); } } /** * Prpcrypt class * * */ class Prpcrypt { public $key = NULL; public function Prpcrypt($k) { $this->key = $k; } /** * 對密文進行解密 php7.0以下 * @param string $aesCipher 需要解密的密文 * @param string $aesIV 解密的初始向量 * @return string 解密得到的明文 */ /* public function decrypt($aesCipher, $aesIV) { try { $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, "", MCRYPT_MODE_CBC, ""); exit('4545454'); mcrypt_generic_init($module, $this->key, $aesIV); $decrypted = mdecrypt_generic($module, $aesCipher); mcrypt_generic_deinit($module); mcrypt_module_close($module); } catch (Exception $e) { return array(ErrorCode::$IllegalBuffer, NULL); } try { $pkc_encoder = new PKCS7Encoder(); $result = $pkc_encoder->decode($decrypted); } catch (Exception $e) { return array(ErrorCode::$IllegalBuffer, NULL); } return array(0, $result); }*/ public function decrypt( $aesCipher, $aesIV ) { try { $decrypted = openssl_decrypt($aesCipher,'AES-128-CBC',$this->key,OPENSSL_ZERO_PADDING,$aesIV); // var_dump($decrypted); } catch (Exception $e) { return array(ErrorCode::$IllegalBuffer, null); } try { //去除補位字符 $pkc_encoder = new PKCS7Encoder; $result = $pkc_encoder->decode($decrypted); } catch (Exception $e) { //print $e; return array(ErrorCode::$IllegalBuffer, null); } return array(0, $result); } } ?>