Я столкнулся с подобной проблемой.Я отследил его до тех пользователей, которые зарегистрировались в PayPal Express и не имеют учетной записи PayPal.Проблема и исправление отображаются здесь:
http://www.magentocommerce.com/bug-tracking/issue/?issue=9894
Лицо, с которым все пользователи не сталкиваются с ошибкой, может быть связано со статусом учетной записи PayPal с / без нее.
Интегрируя Magento с PayPal Express (не стандарт PayPal), пользователи могут покупать продукты нашего магазина.
Однако возможны две разные ситуации: 1) Если у клиента есть учетная запись Paypal, он сможет завершить процесс покупки без проблем.2) Однако, если у клиента нет учетной записи Paypal или он не хочет ее использовать и предпочитает покупать продукты с помощью своей кредитной карты без использования учетных данных PayPal, тогда процесс завершится следующимошибка:
«Этот платеж не может быть обработан с использованием вашей учетной записи PayPal в настоящее время».
Проблема в том, что продавец получит деньги, но клиент подумаеткак раз наоборот.
Эта проблема была рассмотрена и подтверждена службой поддержки PayPal.
Реальная проблема заключается в процессе покупки, вызывается функция PayPal "DoExpressCheckoutPayment
".Однако, когда процесс покупки завершается с этой ошибкой, для параметра «successpageredirectrequested
» устанавливается значение «true
».Этот флаг указывает, нужно ли вам перенаправить клиента обратно в PayPal после завершения транзакции.Однако это устаревшее поведение PayPal, и его не следует использовать.
Поскольку Magento использует функцию этого параметра, когда он пытается снова перенаправить на PayPal (это то, что делает для "successpageredirectrequested" значение true)PayPal вернет эту ошибку.
Мы можем исправить ее, внеся небольшое изменение в исходный код Magento, по адресу app/code/core/Mage/Paypal/Controller/Express/Abstract.php
Просто изменив функцию "public function placeOrderAction ()".Ищите следующий код внутри этой функции:
// redirect if PayPal specified some URL (for example, to Giropay bank)
$url = $this->_checkout->getRedirectUrl();
if ($url) {
$this->getResponse()->setRedirect($url);
return;
}
$this->_initToken(false); // no need in token anymore
$this->_redirect(?checkout/onepage/success?);
return;
}
Нам просто нужно прокомментировать «если», вот так:
//if ($url) {
//$this->getResponse()->setRedirect($url);
// return;
//}
Этого достаточно, чтобы решить проблему.Однако это не текущее исправление, и программисты Magento должны рассмотреть его, чтобы исправить в новых версиях Magento.