Здравствуйте! В раздел веб не дает выложить, может кому-то будет полезно.
Проблема: перестали зачисляться платежи на счета пользователей GameCMS.
Я пофиксил для ЮМани. Во вложении сам файл (
Сами изменения (с 99 строки):
Проблема: перестали зачисляться платежи на счета пользователей GameCMS.
Я пофиксил для ЮМани. Во вложении сам файл (
index.php), его нужно заменить по адресу /modules/purse/.Сами изменения (с 99 строки):
Изменения:
++if(empty($_POST["amount"]) || empty($_POST["operation_id"]) || empty($_POST["label"]) || empty($_POST["sign"]) || empty($_POST["unaccepted"])) {
--if(empty($_POST["amount"]) || empty($_POST["operation_id"]) || empty($_POST["label"]) || empty($_POST["sha1_hash"]) || empty($_POST["unaccepted"])) {
$Pm->paymentLog($payMethod, "empty data", pdo(), 0, 2);
exit('Error: [empty data]');
}
$amount = clean($_POST['withdraw_amount'], 'float');
$payNumber = clean($_POST["label"], 'int');
$userId = (int)clean(substr($payNumber, 0, 7), 'int');
++
++ $notificationParams = $_POST;
++ $sign = $notificationParams['sign'];
++ unset($notificationParams['sign']);
++ ksort($notificationParams, SORT_STRING);
++
++ $dataString = '';
++ foreach ($notificationParams as $key => $value) {
++ $encodedValue = rawurlencode($value);
++ if (strlen($dataString)) {
++ $dataString .= '&';
++ }
++ $dataString .= $key . '=' . $encodedValue;
++ }
++ $calculatedSign = hash_hmac('sha256', $dataString, $merchantsSettings->ya_key);
if(
++ $sign != $calculatedSign
-- //sha1(
-- // $_POST['notification_type']
-- // . '&' . $_POST['operation_id']
-- // . '&' . $_POST['amount']
-- // . '&' . $_POST['currency']
-- // . '&' . $_POST['datetime']
-- // . '&' . $_POST['sender']
-- // . '&' . $_POST['codepro']
-- // . '&' . $merchantsSettings->ya_key
-- // . '&' . $_POST["label"]
-- //) != $_POST['sign']
--
) {
Вложения
Последнее редактирование: