protected function parametersAreEqual(array $paramA, array $paramB)
{
// skip password fields
while (($passWordKeyInA = array_search('****', $paramA)) !== false) {
unset($paramA[$passWordKeyInA]);
unset($paramB[$passWordKeyInA]);
}
while (($passWordKeyInB = array_search('****', $paramB)) !== false) {
unset($paramA[$passWordKeyInB]);
unset($paramB[$passWordKeyInB]);
}
foreach ($paramA as $key => $value) {
if (isset($paramB[$key]) && $paramA[$key] != $paramB[$key]) {
// try removing timestamps
$normalizedValueA = preg_replace('/1[0-9]{9}/', '{tstamp}', $paramA[$key]);
$normalizedValueB = preg_replace('/1[0-9]{9}/', '{tstamp}', $paramB[$key]);
// and check again
if ($normalizedValueA == $normalizedValueB) {
unset($paramA[$key]);
unset($paramB[$key]);
}
}
}
return $this->arrayToString($paramA) == $this->arrayToString($paramB);
}