Пожалуйста, ознакомьтесь с приведенными ниже рекомендациями относительно вашей проблемы с ошибкой 5006, связанной со сбоем транзакций: невозможно перенаправить на веб-сайт поставщика. Поставщику не удалось предоставить RedirectionURL.
Само сообщение об ошибке не всегда является точным, поскольку оно отображается, когда возникает какая-либо проблема с ответом на уведомление, которое они получают в ответ на свое сообщение на ваш NotificationURL. Ниже приведен список различных известных проблем, которые вы можете исследовать:
1) Вы можете подтвердить получение ответа на транзакцию со статусом OK, INVALID или ERROR.
2) Прежде чем записывать три поля выше в объект Response POST, убедитесь, что вы очистили буфер ответа, чтобы удалить любой код заголовка, комментарии или HTML. Сервер Sage Pay ожидает, что «Status=» будет первым символом в ответе. Если он их не видит, он обрабатывает ответ как ошибку и завершает транзакцию!
3) Ваша страница уведомлений должна отвечать ТОЛЬКО полем статуса, полем RedirectURL и, необязательно, полем StatusDetail. Никакой другой HTML, заголовки, комментарии или текст не должны быть включены ни до, ни после этих полей. Сервер Sage Pay будет рассматривать весь такой текст как ошибку и завершит транзакцию.
4) Независимо от статуса, RedirectURL должен быть отправлен, содержащий действительный, полностью квалифицированный URL-адрес (т. е. адрес, начинающийся с http:// или https://) на окончательную страницу завершения на вашем сайте, на которую Sage Pay направит вашего клиента.
5) Кодировка должна быть в виде полей Имя=Значение, разделенных переводом строки (CRLF)
6) Ваша страница уведомлений на вашем сервере может «зависнуть», и вам следует убедиться, что страница уведомлений на вашем сервере может правильно обрабатывать все сообщения, отправленные Sage Pay (ОК, ПРЕРВАТЬ, НЕАВТОРИЗОВАННО, ОТКЛОНЕНО, ОЖИДАНИЕ и ОШИБКА).
7) Вы должны отправить OK во всех случаях, когда при проверке POST-уведомления не возникает ошибок, поэтому, даже если Sage Pay отправит вам статус ABORT или NOTAUTHED, вы должны ответить OK и RedirectURL, который указывает на страницу, информирующую клиента. что транзакция не завершена.
8) Шлюз Sage Pay работает с различными фиксированными IP-адресами, и они обычно используют отдельные IP-адреса для ответа на все запросы транзакций.
Убедитесь, что все следующие IP-адреса разрешены на вашем сервере или брандмауэре:
Для исходящего трафика на наш шлюз:
195.170.169.9 – live.sagepay.com 195.170.169.8 – test.sagepay.com
Для входящего трафика вам нужно только внести IP-адреса в белый список, если вы используете SERVER, поскольку это единственное решение, которое инициирует обратные вызовы. Вам не нужно применять это для наших интеграций FORM и DIRECT. IP-адреса, с которых мы перезваниваем:
195.170.169.14
195.170.169.18
195.170.169.15
Маска подсети, используемая Sage Pay, — 255.255.255.000.
Убедитесь, что ваши брандмауэры разрешают исходящий порт 443 (только HTTPS!) и входящий порт 443 (и, возможно, 80 HTTP) для связи с нашими серверами (в Simulator/Test/Live). Однако всегда есть возможности для того, чтобы это изменить. Sage Pay владеет всем диапазоном 195.170.169.0/255 (256 IP-адресов).
9) Правильно ли вы сопоставляете транзакцию в своей базе данных, используя «SecurityKey», который мы передали на вашу страницу уведомлений с помощью NextURL?
10) Если подписи MD5 совпадают, ваш сценарий уведомлений должен ответить статусом «ОК» и URL-адресом перенаправления, указывающим либо на страницу завершения заказа (если статус был «ОК»), либо на соответствующую страницу сбоя заказа (если статус «НЕ АВТОРИЗОВАН» или «ОШИБКА»). . Вы можете захотеть, чтобы сообщения ABORT перенаправляли клиента на страницу с альтернативными способами оплаты или спрашивали его, почему он решил отменить подписку. Если подписи не совпадают, вы должны проверить, правильно ли ваш код перестраивает сообщение, и если вы уверены, что это так, на все такие сообщения следует отвечать INVALID и RedirectURL, указывающим пользователю на страницу с ошибкой.
person
Guestposter
schedule
10.10.2013