При отправки формы SQL запрос INSERT выполняется 2 раза

Есть код, который в бд создает заказ и сразу же делает отправку формы на платежную систему. Проблема в том, что иногда INSERT выполняется 2 раза. Вот я тестирую сейчас примерно 1/5 попыток такой случай появляется.

require_once ROOT . '/modules/payment/_classFreeCassa.php';
  $db->sendQuery("INSERT INTO `orders`(`user_id`, `sum`, `type_pay`, `type_order`, `status`) VALUES (?,?,?,1,0)", array($user_id, $sum, "$type_pay"));
  $order_id = $db->fetchObj("SELECT `id` FROM `orders` WHERE `user_id` = $user_id ORDER BY `id` DESC LIMIT 1")->id;
  FreeKassa::setUp($sum, $order_id);
  echo FreeKassa::doOrder();

А вот сама отправка формы

class FreeKassa
{
  const MERCHANT  = '123'; // ID Мерчанта
  const SECRET    = '123'; // Секретный ключ
  const DSECRET   = '123'; // Секретный ключ 2

  public static $sum     = null; // Сумма
  public static $ordId   = null; // ID Заказа

  public static function setUp($sum, $ordId)
  {
    self::$sum = $sum;
    self::$ordId = $ordId;
  }

  public static function genForm()
  {
    return 'https://www.free-kassa.ru/merchant/cash.php?' . http_build_query([
      'm'     => self::MERCHANT,
      'oa'    => self::$sum,
      'o'     => self::$ordId,
      's'     => self::getSign(),
    ]);
  }

  public static function doOrder(){
    return '<script>location.href ="' . self::genForm() . '";</script>';
}

  public static function getSign()
  {
    return md5(self::MERCHANT . ':' . self::$sum . ':' . self::SECRET . ':' . self::$ordId);
  }

  public static function getOrderSign()
  {
    return md5(self::MERCHANT . ':' . self::$sum . ':' . self::DSECRET . ':' . self::$ordId);
  }
}

Посмотрел логи, очень странно к странице выполняется 2 GET запроса, но я выполняю всего 1 запрос - просто перехожу по url.
PHP: 7.1
SQL: 5.7


Ответы (0 шт):