Всем привет. Проблема в следующем.
Язык - php.
Посылаю POST-запрос на сервер. Параметры запроса следующие - appdata - {"id":1,"hash":"a08f4db74b7ca13f52b098a3bdc65dd9"} , params - {"asd":123} (сформированный json).
в скрипте обрабатываю следующим образом:
if (isset($_POST['appdata'])) //appdata - id,hash of app
{
unset($appdata);
$appdata = json_decode($_POST['appdata'], true);
if (empty($appdata))
{
throw new Exception('$appdata in POST is bad - '.$_POST['appdata'].' from ip - '.$_SERVER["REMOTE_ADDR"], -15);
}
unset($soul);
$soul = _CheckAPP($appdata['id'],$appdata['hash'],$_POST['params']);
где _CheckAPP -
function _CheckAPP($id,$hash,$params)
{
if (empty($id) || empty($hash) || empty($params))
{
throw new Exception('$appdata in POST is bad - '.$_POST['appdata'].' from ip - '.$_SERVER["REMOTE_ADDR"], -15);
}
$APP_list=array(
1 => array(
'id' => '1',
'secret' => '882fa0dd30eeca544871f31bc41d244b',
'soul' => 'asd12wez128&712u4h8-0)611297cg*&'
)
);
if (!isset($APP_list[$id]))
{
throw new Exception('This APP Not Registered - '.$id, -11);
}
else
{
$reg_secret=$APP_list[$id]['secret'];
$conc_string=$id.$params.$reg_secret;
if (md5($conc_string)!==$hash)
{
throw new Exception('APP Registered - '.$id.' hash is wrong - '.md5($conc_string), -12);
}
else
{
return $APP_list[$id]['soul'];
}
}
}
выбрасывает ошибку - хэш не подходит. Получаю хэш от $conc_string в другом скрипте или на сайте-генераторе - не совпадает с тем, что указан в тексте ошибки.
В чем может быть проблема?
Спасибо.