|
|
@@ -356,6 +356,48 @@ class MpService extends BaseService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 检验数据的真实性,并且获取解密后的明文.
|
|
|
+ * @param $encryptedData string 加密的用户数据
|
|
|
+ * @param $iv string 与用户数据一同返回的初始向量
|
|
|
+ * @param $sessionKey string 解密会话KEY
|
|
|
+ *
|
|
|
+ * @return int 成功0,失败返回对应的错误码
|
|
|
+ */
|
|
|
+ public function decryptData($encryptedData, $iv, $sessionKey)
|
|
|
+ {
|
|
|
+ if (strlen($sessionKey) != 24) {
|
|
|
+ $this->error = -41001;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $aesKey=base64_decode($sessionKey);
|
|
|
+ if (strlen($iv) != 24) {
|
|
|
+ $this->error = -41002;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $aesIV=base64_decode($iv);
|
|
|
+
|
|
|
+ $aesCipher=base64_decode($encryptedData);
|
|
|
+
|
|
|
+ $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
|
|
|
+
|
|
|
+ $dataObj=json_decode( $result );
|
|
|
+ if( $dataObj == NULL )
|
|
|
+ {
|
|
|
+ $this->error = -41003;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if( $dataObj->watermark->appid != $this->mpAppid)
|
|
|
+ {
|
|
|
+ $this->error = -41003;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 保存日志
|
|
|
@@ -370,4 +412,5 @@ class MpService extends BaseService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|