При отправки формы 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