Вот ситуация. У моей компании есть магазин электронной коммерции, но мы сами не собираем и не обрабатываем информацию о кредитной карте. Когда пользователь выбирает «Оплатить кредитной картой», они сразу же отправляются на сайт оплаты, а затем этот сайт обрабатывает свою кредитную карту и отправляет нам статус, чтобы заказ мог быть отмечен как заплаченный. Наш сайт работает на ColdFusion, и он получает данные с сайта как данные формы, обрабатывает переменные формы и создает заказ для клиента, помеченный как оплаченный. Сайт кредитной карты отправляет информацию только один раз, и нет «рукопожатия».Возможна регистрация формы регистрации?
За последние полтора месяца у нас возникла проблема, когда изредка мы не получаем информацию с сайта обработки кредитных карт, хотя они говорят, что отправили его. Следовательно, заказы не создаются, а продукты сидят в тележках клиентов, даже если кредитная карта была снята. Эта проблема прерывистая. Мы не можем привязать его к любым изменениям сервера на нашей стороне, а сайт кредитной карты отрицает изменения на их стороне.
Таким образом, среди вещей, которые мы пытаемся сделать, является регистрация, когда клиенты на самом деле пытаются оплатить с помощью кредитной карты (чтобы мы могли легче поймать пропущенных). Поэтому я хочу как-то зарегистрировать событие, когда кто-то нажимает «Оплатить кредитной картой». Проблема заключается в том, что действие формы передает данные на сайт кредитной карты. Единственный способ, которым я могу это сделать, - изменить действие формы на страницу на нашем сайте, зарегистрировать попытку платежа и затем отправить форму снова компании кредитной карты. Я знаю, что могу автоматически отправлять форму с помощью JavaScript, но это похоже на плохое решение (что, если JS отключен?), Но не знаю, как можно было бы сделать серверную сторону.
Пожалуйста, старайтесь избегать решений, в которых задействован AJAX, если это возможно, поскольку я очень мало знаю об этом (я - очень новобрачный веб-разработчик в целом и просто унаследовал всю эту настройку).
Лучшие решения о том, как зарегистрировать это событие или предложения в целом для этого беспорядка, будут очень благодарны!
Ответы на комментарии:
Сэму Dufel: Очень хотелось бы, чтобы перейти к другому провайдеру, как Paypal. К сожалению, моя компания фактически является частью университета, и все мы должны использовать один и тот же платежный шлюз.
To flup: Будете ли использовать код статуса 301 или 302 сохранять данные формы? Я пробовал посмотреть на это, и похоже, что он работает с «get», но мне нужно, чтобы он был отправлен с сообщением «post», поскольку это то, что ожидает платежный шлюз.
К imthepitts: Мы получаем его как данные формы.
To Revent: Проблема заключается в том, что заказы вообще не создаются (поэтому информация о клиенте и заказе просто находится во временных таблицах корзины/клиента/заказа). Кажется, что страница, которая должна обрабатывать данные формы с платежного шлюза, недоступна. Я добавил некоторые записи на эту страницу, но моя компания так испугалась, что они отключили платежи по кредитным картам, и поэтому я не получаю никаких данных. Если я смогу убедить их в том, что я внедрил хорошее решение для регистрации, чтобы быстро определить буксируемые заказы, они вернут его обратно.
To Laksma: Мы используем уникальный идентификатор, который отправляется обратно. То, что я подразумевал под рукопожатием, - это какой-то способ оплаты, проверяющий, что они установили соединение с нашим сервером. Возможно, я неправильно использовал это слово. Благодарим вас за предложение журнала на принимающей странице - я добавил это.
To Nenotlep: Я знаю, что я сказал AJAX, но я хотел бы больше узнать о вашей идее. Может ли вызов страницы регистрации вмешиваться в отправку формы? Я предполагаю, что он будет настроен так, что функция будет запускаться в событии «onclick» для кнопки формы, а затем форма представления будет действовать как обычно? Если это легко настроить, возможно, это будет хороший способ сделать это.
Я думаю о попытке решения Санджива, поскольку это похоже на то, что я планировал делать в любом случае, но я действительно хотел бы услышать больше о идее AJAX, если это действительно так просто, главным образом потому, t изменить опыт работы с клиентами вообще (в отличие от просмотра экрана перенаправления).
Дополнительный ответ Стиву:
Я ценю ваш вклад, и обычно я люблю преподавать себе новые вещи, но я просто слишком перегружен прямо сейчас, чтобы даже думать о решении новой технологии.
Я собирался предложить простой регистратор AJAX, но хорошо. Это очень простая вещь для создания; при простейшем запросе GET на URL-адрес, который имеет один параметр, например «site.fi/log?msg=UserFoobarSentPostThing» и серверы просто прямо, заставляя сообщение в вашу систему ведения журнала. Хорошо, что некоторые примитивные фильтрации данных могут быть полезны только в случае вредоносных запросов, но на самом деле очень просто построить что-то вроде этого, даже если это AJAX :) – Nenotlep
На вашем сайте обработки кредитных карт должен быть журнал транзакций, уже , Если нет, я бы настоятельно предложил вам найти лучшего поставщика. –
Возможно, у вас может быть кнопка «платить с помощью кредитной карты» на URL-адрес вашего собственного сайта, регистрироваться при попадании в нее, а затем отправить [HTTP 301 или 302] (http://en.wikipedia.org/wiki/HTTP_302), чтобы перенаправить браузер на фактический сайт кредитной карты. См. Http://stackoverflow.com/questions/2503300/how-do-you-redirect-in-coldfusion-and-control-the-status-code-ie-301- instead – flup