<?
//Секретный ключ в нашей системе
$S_KEYS = '12345';
$ss='';
//Перебор всех полей полученных при передачи мотодом "POST"
foreach ($_POST as $k => $v)
{
$array[$k]=$v;
$ss = "$ss>>$k=$v\n";
}
//Функция для кодирования данных($data) ключем($key) методом hmac
function hmac($key, $data)
{
$b = 64; // byte length for md5
if (strlen($key) > $b) {
$key = pack("H*",md5($key));
}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad ;
$k_opad = $key ^ $opad;
//Возвращает результат - кодированное слово
return md5($k_opad . pack("H*",md5($k_ipad . $data)));
}
//Список фиксированных полей отправленных системой
//Остальные параметры - это поля поставщика услуг
$s1 = $array['date'];
$s2 = $array['id_pay'];
$s3 = $array['trans_pay'];
$s4 = $array['trans_corr'];
$s5 = $array['keyt'];
$s6 = $array['summ'];
$s7 = $array['curr'];
$s8 = $array['commiss'];
$s9 = $array['itogo'];
//Кодируемая строка (состоит из порядка данных фиксированных полей системы)
$strings = "$s1$s2$s3$s4$s5$s6$s7$s8$s9";
//Результат кодирования
$sign = hmac($S_KEYS, $strings);
$ss = "\n$ss=STRING-$strings\n\n";
$ss = "\n$ss=SIGN-$sign\n\n";
//Запись результатов обработки в файл 'file.txt'
$file=fopen('file.txt',"w+");
$text= "$ss";
fwrite($file,$text);
fclose($file);
?>