В результате ошибочного направления ответ на эту проблему был решен из-за других вещей, помимо упомянутых здесь. Тем не менее, отличные предложения.
В этом случае оказалось, что проблема была в том, как наша система определяет завершение платежа по кредитной карте. Предполагается, что система ожидает успешной авторизации платежа, и процесс «Post Authorization» рассматривает этот платеж как «успех».
Точная причина этого связана с необычным характером нашего продукта и этапами данной банковской операции. Для онлайн-платежей в Великобритании оплата не может быть «Авторизована» до тех пор, пока товар не будет «отправлен».
Если бы мы продавали книги (или кружки, или садовых гномов новизны), то уведомления об успешной предварительной авторизации было бы достаточно, чтобы считать транзакцию завершенной, поскольку отгрузка будет происходить чуть позже. Мы продаем билеты на концерты, точнее, мы продаем вход на концерты, физическим представлением которых является билет. В ту минуту, когда у нас есть деньги клиента, они фактически гарантируют им вход на концерт при всех обычных обстоятельствах.
В реальном смысле наш продукт поставляется в секунду, когда транзакция завершена, поэтому необходимо выполнить процессы до и после авторизации, чтобы считать транзакцию успешной.
Однако, когда предварительная аутентификация завершается успешно, клиент уверен, что он также опубликует авторизацию, поэтому мы покажем им экран «завершено», чтобы приложение работало быстрее. На кассе, которая просит распечатки билетов, это то же самое. Однако то, что никто не знает, это то, что пост-аутентификация может занять еще одну-три минуты, чтобы опубликовать аутентификацию и, таким образом, будет полным «успехом». Если оплата не будет успешной, она не будет возвращена из службы печати, потому что базовый запрос к БД возвращает результат «Нет совпадений при заказе», поэтому в конце концов все, что мне нужно было сделать, это подождать, пока он не завершит пост-аутентификацию, и все работало нормально.
Так что, в общем, немного буря в стакане воды. Теперь нам просто нужно, чтобы базовый SQL возвращал заказ в то же время, что и страница успеха, но не включал ошибочные платежи (например, это может быть вызвано ошибочным использованием полей обнаружения мошенничества, таких как почтовый индекс владельца карты) вместе с успешным платежом, который мы хотим напечатать. .
Спасибо всем за помощь. Извините, это было относительно мирское исправление.