Здравствуйте,
Cделал новый модуль онлайн оплаты и столкнулся с проблемой:
если при переводе пользователя на сайт платежной системы что-то пошло не так (или оплата прошла не успешно), пользователь вернулся на страницу магазина (страница оформления заказа) и пользователь пытается попробовать оплатить заказ снова (например, Яндекс.Деньги), платежная система возвращает "Повторная оплата счета "###" невозможна для магазина. Номер счета "###" уже зарегистрирован в системе для ПМ Яндекс.Деньги". И это правильно, т.к. происходит повторная попытка создания счета (с тем же Order_Id).
Вопрос: каким образом можно избежать данной ситуации? Нужно как-то пересоздавать Заказ в магазине (чтобы получить новый Order_id)? Или есть еще какие-то варианты?
Спасибо.
Здравствуйте,
Cделал новый модуль онлайн оплаты и столкнулся с проблемой:
если при переводе пользователя на сайт платежной системы что-то пошло не так (или оплата прошла не успешно), пользователь вернулся на страницу магазина (страница оформления заказа) и пользователь пытается попробовать оплатить заказ снова (например, Яндекс.Деньги), платежная система возвращает "Повторная оплата счета "###" невозможна для магазина. Номер счета "###" уже зарегистрирован в системе для ПМ Яндекс.Деньги". И это правильно, т.к. происходит повторная попытка создания счета (с тем же Order_Id).
Вопрос: каким образом можно избежать данной ситуации? Нужно как-то пересоздавать Заказ в магазине (чтобы получить новый Order_id)? Или есть еще какие-то варианты?
Спасибо.
Обычно к номеру заказа подставляется префикс или суффикс, чтобы сделать его уникальным. Например,
$new_order_id = $order_id . '_' . TIME;
Обычно к номеру заказа подставляется префикс или суффикс, чтобы сделать его уникальным. Например,
$new_order_id = $order_id . '_' . TIME;
получается, что при получении "notify", необходимо будет каждый раз вырезать order_id из значения new_order_id?