Внутренняя ошибка сервера NVP PayPal Sandbox Classic API Express Checkout (500)

Краткое резюме:

Я занимаюсь разработкой сайта электронной коммерции с использованием PHP. Он использует PayPal для осуществления платежей. Я успешно использую (от отправки строки запроса через SetExpressCheckout до DoExpressCheckoutPayment в GetExpressCheckoutDetails до хранения платежных реквизитов в базе данных MySQL) режим песочницы PayPal с их Classic API Express Checkout (NVP) с некоторого времени в конце прошлого года и до настоящего времени. До вчерашнего вечера все работало нормально, и в раздел PayPal на сайте не было внесено никаких серьезных изменений. Теперь я получаю «Внутренняя ошибка сервера» в https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&маркер = [ЗНАК] на каждый платежный запрос.

Прохождение:

  • Разбор платежного запроса: «…&PAYMENTREQUEST_0_PAYMENTACTION = … «,
  • Вызов «SetExpressCheckout»,
  • Получить [ACK] => Успешно (Нет ошибки = нет LONGMESSAGE),
  • Перенаправить на предоставленный токен https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&маркер = [ЗНАК],
  • Получите «Внутренняя ошибка сервера» по ссылке выше каждый раз.

Что я вижу:

Возврат PayPal SetExpressCheckout:

Array
(
[TOKEN] => XX-XXXXXXXXXXXXXXXXX
[TIMESTAMP] => 2015-03-28T20:27:25Z
[CORRELATIONID] => XXXXXXXXXXXXX
[ACK] => Success
[VERSION] => 109.0
[BUILD] => 15840636
)

Сообщение об ошибке PayPal Sandbox по ссылке, указанной выше:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Почему я не могу найти ответ:

  • Общее сообщение «Внутренняя ошибка сервера» означает, что я понятия не имею, с чего начать поиск, так как я не уверен, что проблема со мной (что было бы моим предположением по умолчанию) или с PayPal.
  • Большинство решений указывают на несоответствие между производственными и учетными данными URL / API песочницы. Это НЕ проблема. В течение некоторого времени я успешно использовал учетные данные Sandbox со ссылкой Sandbox.
  • Все обнаруженные мной проблемы с внутренними ошибками сервера PayPal относятся к людям, использующим REST API (или с IPN). Я использую Express-Checkout, управляемый Classic-API, и не вижу ни debug_id, ни того, как я его получу.
  • Все проблемы в прошлом можно было решить, посмотрев возвращенное сообщение об ошибке (ACK = Failure&L_ERRORCODE0 = [‘некоторый код ошибки’]&L_SHORTMESSAGE0 = [‘короткое сообщение об ошибке’]&L_LONGMESSAGE0 = [‘подробное сообщение об ошибке’]). Здесь нет сообщения об ошибке, поскольку оно регистрируется как успешное.
  • Я попытался изменить учетные данные API и получить стандартную ошибку заголовков безопасности (затем я переключаюсь обратно, и ошибка исчезает и возвращается к внутренней ошибке сервера при перенаправлении).
  • Я попытался поработать со строкой запроса, но чувствую себя достаточно уверенно, что это не проблема, поскольку, когда я намеренно испортил это, я получаю стандартное сообщение об ошибке для этого.

6

Решение

После сообщения об этой проблеме в журнале PayPal они ответили, подтвердив, что это известная проблема с их стороны.

Уважаемый Филипп,

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

С уважением,

Майк

Техническая поддержка продавца

PayPal, компания eBay

Обновление от PayPal:

Уважаемый Филипп, проблема с песочницей должна быть решена сейчас, и вы должны
не видеть ошибку внутреннего сервера 500. Если у вас есть какие-либо другие
вопросы, пожалуйста, дайте нам знать, https://www.paypal.com/mts

С уважением,

Майк

Техническая поддержка продавца

PayPal, компания eBay

Я проверил, и это, кажется, исправлено.

2

Другие решения

Внутренняя ошибка сервера означает внутреннюю для сервера PayPal. Это PayPal «Помощь! Я сдаюсь!» сообщение об ошибке.

Это не исключает возможности того, что вы что-то сделали неправильно, что привело код PayPal с зеленого пути в лес, где его съел медведь, но независимо от того: делайте так, как сказано на странице ошибки, и обратитесь в службу поддержки PayPal. Они должны быть в состоянии найти ваш корреляционный идентификатор и посмотреть, что произошло. Затем они могут сообщить вам, можете ли вы обойти эту проблему, внеся изменения в свою сторону, или все в порядке с вашим кодом, и это на 100% их проблема. И тогда они могут улучшить свой код, чтобы следующий человек, который может сделать ошибку, похожую на вашу, получил лучшую обратную связь.

(Хотя в случае такой страницы, которая обычно отображается для вашего клиента, а не для вас, PayPal обычно выдает только относительно общее сообщение об ошибке.)

И еще несколько вещей, которые я хотел бы проверить, хотите ли вы поработать над этим немного дольше, пока вы ждете, пока PayPal вернется к вам: вы убедились, что API, кажется, действительно работает так, как он утверждает. Разумная вещь, которую нужно проверить, но ошибка заключается в веб-перенаправлении, поэтому сосредоточьтесь на этом: что вы получите, если передадите фальшивый токен? Что происходит на другом компьютере или после того, как вы очистили свои куки? Что вы получите, если попытаетесь совершить кнопочный платеж (не экспресс-заказ) с той же парой счетов?

2

По вопросам рекламы [email protected]