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

Я использую платежный процессор Menoris в CS-Cart v 4.3.9, некоторое время назад эта ошибка стала более частой: "Ответ обработчика платежей: транзакция не была отправлена ​​на хост из-за дублированного идентификатора заказа".

Я не понимаю, почему это происходит, поэтому я не знаю, где искать, я пытался вызвать ошибку самостоятельно, но не смог.

3 ответа

Пожалуйста, измените код и создайте уникальный идентификатор заказа для каждого раза, когда клиент пытается оплатить заказ, что-то вроде

например: 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, и клиент нажимает кнопку "Отмена" или возвращается на веб-сайт, после чего он снова отправляется на оплату заказа.

Проверьте свою таблицу cscart_orders и посмотрите на эти идентификаторы.

Я не думаю, что вы установили максимальный лимит записей mysql в cscart_order для дублирования (16777215 - это максимальное значение для поля с целочисленным типом).

На мой взгляд, проблема заключается в том, где вы отправляете данные, подумайте об этом.

Проверьте это тоже: http://forum.cs-cart.com/topic/45830-issue-with-order-id/

Спасибо всем за ваши ответы, мне удалось решить эту проблему, добавив отметку времени рядом с идентификатором заказа

'order_id' => $processor_data['processor_params']['order_prefix'] . $order_info['order_id'] .'_'. date("G:i:s"),
Другие вопросы по тегам