Добрый день!
Разрабатывая свое приложение для работы с api ok, написал такую функцию для вычисления signature -
$arr = ['application_key' => $okpublicKey, 'method' => $method];
if (is_array($query)) { // это массив с переменными запроса ключ=значение
$arr = array_merge($arr, $query);
}
ksort ($arr);
$sigstr = null;
$keys = array_keys ($arr);
foreach($keys AS $key) {
$sigstr .= $key . '=' . $arr[$key];
}
$sig = md5($sigstr . md5($access_tokenn.$okclientSecret));
работает он вполне неплохо, но что то видимо в нем не так, ибо в логах встречается примерно 2% ошибок вида
Err: {"error_code":104,"error_msg":"PARAM_SIGNATURE : Invalid signature 97d3597208670e2907ef6e6f26f11988, calculated by string application_key=CDSFDEEBAcomment=НОВИНКА \r\nКрутые кардиганы1200₽ . 42,44,46,48\r\nКашемир качество супер \r\n⭐️☀️ method=photosV2.commit********SECRET KEY*******","error_data":null}
Прошу пинка в верном направлении, что может быть не так? Или, может, где то есть готовый алгоритм расчета подписи.. Официальной информации обнаружить не удалось, только метод бубна :)