mPaths = []; $this->mPaths[self::JYC_APPID] = BASE_ROOT_PATH . '/helper/openapi/keys/jyc_pub.pem'; $this->mPaths[self::DHKJ_APPID] = BASE_ROOT_PATH . '/helper/openapi/keys/dhkj_pub.pem'; } static public function instance() { if(self::$stInstance == null) { self::$stInstance = new KeyManager(); } return self::$stInstance; } private function pub_key($appid) { if(empty($appid)) return false; if(!array_key_exists($appid,$this->mKeys)) { if(!array_key_exists($appid,$this->mPaths)) { return false; } else { $key = file_get_contents($this->mPaths[$appid]); $pub = openssl_get_publickey($key); if($pub === false) return false; $this->mKeys[$appid] = $pub; } } return $this->mKeys[$appid]; } public function verify($appid,$body,$signed) { $pub = $this->pub_key($appid); if($pub === false) return false; return openssl_verify($body, $signed, $pub) === 1; } }