Здравствуйте. Помогите пожалуйста правильно изменить код, самостоятельно так и не вышло деньги на баланс при оплате не начисляются а сумма с кошелька переводиться.
Проблема собственно скорее всего в правильном написании кода при переходе с подписи MD5 на SHA256. Что нужно изменить?
include "cfg.php"; function er($string, $step) { error_log($string . ", step: $step, payment_no: ". $_POST['LMI_PAYMENT_NO']); die(); }; $LMI_PREREQUEST = $_POST['LMI_PREREQUEST']; // предварительный запрос $LMI_PAYEE_PURSE = $_POST['LMI_PAYEE_PURSE']; // Кошелек продавца $LMI_PAYMENT_AMOUNT = $_POST['LMI_PAYMENT_AMOUNT']; // Сумма платежа (); $LMI_PAYMENT_NO = $_POST['LMI_PAYMENT_NO']; // Внутренний номер покупки продавца (); $LMI_MODE = $_POST['LMI_MODE']; // Флаг тестового режима (LMI_MODE); $LMI_SYS_INVS_NO = $_POST['LMI_SYS_INVS_NO']; // Внутренний номер счета в системе WebMoney Transfer; $LMI_SYS_TRANS_NO = $_POST['LMI_SYS_TRANS_NO']; // Внутренний номер платежа в системе WebMoney Transfer $LMI_SYS_TRANS_DATE = $_POST['LMI_SYS_TRANS_DATE']; // Дата и время выполнения платежа (); $LMI_SECRET_KEY = $_POST['LMI_SECRET_KEY']; // Secret Key (LMI_SECRET_KEY); $LMI_PAYER_PURSE = $_POST['LMI_PAYER_PURSE']; // Кошелек покупателя (); $LMI_PAYER_WM = $_POST['LMI_PAYER_WM']; // WMId покупателя (). $LMI_HASH = $_POST['LMI_HASH']; // Контрольная подпись if($LMI_PAYMENT_NO) { $get_info = mysql_query("SELECT * FROM enter WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1"); $row = mysql_fetch_array($get_info); $cid = $row['id']; $sum = $row['sum']; $status = $row['status']; $dbLMI_SYS_INVS_NO = $row['LMI_SYS_INVS_NO']; $dbLMI_SYS_TRANS_NO = $row['LMI_SYS_TRANS_NO']; $my_hash = md5($cfgWMZ.$sum.$LMI_PAYMENT_NO.$LMI_MODE.$LMI_SYS_INVS_NO.$LMI_SYS_TRANS_NO.$LMI_SYS_TRANS_DATE.$key.$LMI_PAYER_PURSE.$LMI_PAYER_WM); if(($LMI_PREREQUEST == 1 || $LMI_PREREQUEST) && $sum == $LMI_PAYMENT_AMOUNT && $LMI_PAYEE_PURSE == $cfgWMZ) { $query = mysql_query("UPDATE enter SET status = 1 WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1"); if($query) { print "YES"; } else { er('Item not reserved', 3); } } elseif($my_hash == strtolower($LMI_HASH) && $status == 1) { if(!$LMI_MODE) { $query = "SELECT * FROM enter WHERE id = ".intval($_POST['LMI_PAYMENT_NO'])." LIMIT 1"; $result = mysql_query($query); $rows = mysql_num_rows($result); if($rows == 1) { $date = date("d.m.Y"); $row = mysql_fetch_array($result); mysql_query('UPDATE users SET balance = balance + '.$row[sum].' WHERE login = "'.$row[login].'" LIMIT 1'); mysql_query("UPDATE enter SET status = 2, wmz = '".addslashes(htmlspecialchars(trim(substr($LMI_PAYER_PURSE,0,13))))."' WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1"); mysql_query("UPDATE logs SET enter=enter+".$row[sum]." WHERE date='".$date."' LIMIT 1"); } else { print '<p><center><b style="color:red">Не удаётся пополнить счёт!</b></center></p>'; } } else { $query = 1; } if($query) { print "YES"; } else { er('Item not reserved', 4); } } else { er('Item not reserved', 1); } } else { er('Item not reserved', 2); }