Guest User

Untitled

a guest
Jul 21st, 2019
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. <?php
  2. // Отклоняем запросы с IP-адресов, которые не принадлежат Payeer
  3. if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189','149.202.17.210'))) return;
  4.  
  5. if (isset($_POST['m_operation_id']) && isset($_POST['m_sign'])) {
  6. $m_key = '123';
  7.  
  8. // Формируем массив для генерации подписи
  9. $arHash = array($_POST['m_operation_id'],$_POST['m_operation_ps'],$_POST['m_operation_date'],$_POST['m_operation_pay_date'],$_POST['m_shop'],$_POST['m_orderid'],$_POST['m_amount'],$_POST['m_curr'],$_POST['m_desc'],$_POST['m_status']);
  10.  
  11. // Если были переданы дополнительные параметры, то добавляем их в массив
  12. if (isset($_POST['m_params']))
  13. {
  14. $arHash[] = $_POST['m_params'];
  15. }
  16.  
  17. // Добавляем в массив секретный ключ
  18. $arHash[] = $m_key;
  19.  
  20. // Формируем подпись
  21. $sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
  22.  
  23. // Если подписи совпадают и статус платежа “Выполнен”
  24. if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
  25. {
  26.  
  27. $host = 'localhost';
  28. $user = 'intzet_test';
  29. $password = '12345';
  30. $db = 'intzet_test';
  31. $charset = 'utf8';
  32. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
  33. $pdo = new PDO ($dsn,$user,$password);
  34.  
  35. $sql = 'INSERT INTO `items` (`count`) VALUES (:count);';
  36. $query = $pdo -> prepare($sql);
  37. $query -> execute(['count' => 1]);
  38.  
  39.  
  40. // Возвращаем, что платеж был успешно обработан
  41. exit($_POST['m_orderid'].'|success');
  42. }
  43.  
  44. // В противном случае возвращаем ошибку
  45. exit($_POST['m_orderid'].'|error');}
Add Comment
Please, Sign In to add comment