#php #payment-gateway #cs-cart
#php #платежный шлюз #cs-cart
Вопрос:
Я использую платежный процессор Menoris в CS-Cart версии 4.3.9, некоторое время назад эта ошибка стала более частой «Ответ платежного процессора: транзакция не была отправлена на хост из-за повторяющегося идентификатора заказа».
Я не понимаю, почему это происходит, поэтому я не знаю, где искать, я сам пытался вызвать ошибку, но не смог.
Ответ №1:
Проверьте таблицу cscart_orders и посмотрите на эти идентификаторы.
Я не думаю, что вы пересчитали максимальный предел записей mysql в cscart_order как повторяющийся (16777215 — это максимальное значение для поля с целочисленным типом).
На мой взгляд, проблема в том, куда вы отправляете данные, подумайте о том, чтобы попросить их об этом.
Проверьте это тоже: http://forum.cs-cart.com/topic/45830-issue-with-order-id /
Ответ №2:
Пожалуйста, измените код и создайте уникальный идентификатор заказа для каждого раза, когда клиент пытается оплатить заказ, что-то вроде
пример: 12345_1, где order_id = 12345 и 1 значение order_repaid
вы можете проверить, как работает платежный шлюз 2checkout, например 😉 app/payments/2checkout.php
...
$cart_order_id = ($order_info['repaid']) ? ($order_id .'_'. $order_info['repaid']) : $order_id;
...
если Monoris не принимает, чтобы order_id был строковым, вам нужно будет генерировать и уникальный order_id для каждого раза, когда клиент пытается купить и прикрепить к order_id таким образом, при возврате платежа вы сможете получить реальный order_id и выполнить платеж
* [дубликат идентификатора заказа] — проблема возникает, когда клиент переходит на страницу оплаты Monoris и нажимает «Отменить» или «Вернуться на сайт», после чего он снова переходит к оплате заказа
Ответ №3:
Спасибо всем за ваши ответы, мне удалось решить эту проблему, добавив отметку времени рядом с идентификатором заказа
'order_id' => $processor_data['processor_params']['order_prefix'] . $order_info['order_id'] .'_'. date("G:i:s"),