Сбербанк: Ошибка #1: Заказ с таким номером уже обработан

Недавно ко мне обратился хороший знакомый с проблемой. На его сайте был подключен эквайринг от Сбербанка. В момент заказа покупателю приходило письмо, где была ссылка на оплату. Если покупатель по каким то причинам не оплатил заказ сразу, в момент оформления, то он мог это сделать после перехода по ссылке из письма. Однако, после такого перехода Сбербанк возвращал ошибку с текстом "Заказ с таким номером уже обработан"

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

В момент обращения сайта к Сбербанку на стороне последнего регистрируется заказ под тем номером, что отправляет сайт. Не важно оплачен заказ или нет, но Сбербанк не позволяет повторно обработать заказ, поскольку пытается его зарегистрировать, а зарегистрировать нельзя. Потому что заказ с таким номером уже хранится в базе данных Сбербанка. Замкнутый круг.

Как обойти это препятствие?

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

Ниже на картинке показана переменная "orderNumber", которая отправляется на сторону Сбербанка при моем решении



Первая часть это номер заказа, который сформировался на сайте.

Разделителем здесь является набор символов "-x-"

Далее идет случайный набор символов. При желании можно написать отдельную функцию, чтобы там были и числовые и символьные значения

Самое главное теперь обработать запрос от Сбербанка, который приходит после успешной оплаты

Нам нужно будет взять номер заказа разбить его на две части по разделителю. И по первой части производить все действия с заказом: менять статус, отсылать email  уведомления покупателю и т д

Какое то конкретное решение я написать не могу, все зависит от вашей CMS и от расширения, которое занимается обработкой платежей
Если нужна техническая помощь - пишите. Постараюсь помочь

С уважением, Владимир