CS-Cart Транзакция не была отправлена на хост из-за повторяющегося идентификатора заказа

#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"),