Ошибки адреса доставки Paypal

12

Я пытаюсь проверить мой магазин с PayPal Sandbox . Я получаю 2 разные ошибки в 2 разных ситуациях.
1. Все работает нормально до завершения заказа в PayPal. Тогда получите сообщение:

К сожалению, PayPal не позволяет жителям Соединенных Штатов отправлять покупки в любую точку

2. Вторая ситуация, когда я изменяю свой адрес доставки покупателю на США. Я получаю следующую ошибку на первой странице в PayPal:

Невозможно обработать платеж. Пожалуйста, свяжитесь с продавцом, так как адрес доставки, указанный продавцом, является недействительным, и продавец запросил, чтобы ваш заказ был отправлен на этот адрес.

Я узнал здесь , что это кажется проблемой для многих. Из здесь я узнал, что есть что - то делать с address_override методом и здесь предлагается , чтобы выключить его.
Есть ли способ выключить его в Magento? Безопасно ли его выключать? Почему это там в первую очередь? или какие еще есть решения? :

Я нашел метод address_override в magento в

\ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php строка: 238 $ запрос ['address_override'] = 1;

Изменил его на «0», и теперь песочница PayPal работает. Нет ошибок больше. Но как я могу сделать это, не меняя основные файлы magento? и это безопасно?

Ruuter
источник
1
Я хотел бы отметить кое-что еще для других, страдающих от тестирования Paypal. Я получил его после выключения address_override, но потом я застрял в статусе «Payment Review» в PayPal. Оказывается, вы должны иметь ту же валюту в настройках Magento, что и в учетной записи песочницы Paypal. В противном случае PayPal никогда не запускает IPN для завершения заказа.
Рутер

Ответы:

7

Вы можете сделать следующее, если не хотите менять основные файлы:

  1. Создать папки Mage/Paypal/Model/Apiпод/app/code/local/
  2. Скопируйте файл Standard.phpиз/app/code/core/Mage/Paypal/Model/Api
  3. Вставьте файл Standard.phpв/app/code/local/Mage/Paypal/Model/Api
  4. Измените строку 238 с
$ request ['address_override'] = 1;

в

$ request ['address_override'] = 0;
Омар Фарук Шариф
источник
7

Этот address_overrideпараметр позволяет указать адрес доставки, который ваш магазин Magento отправляет в Paypal в качестве адреса доставки, а не адрес доставки клиента, сохраненный на стороне Paypal.

Если address_overrideустановлено значение 1, которое имеет место в Magento, то Paypal проверит адрес доставки. Если параметр установлен в 0, это, предположительно, нет. Поэтому убедитесь, что вы отправляете действительный и правильно отформатированный адрес в Paypal.

Я столкнулся с этой проблемой из-за отсутствия значения "state". Paypal принимает только аббревиатуры штата, такие как «CA» для «Калифорния». Для других стран штаты могут быть недоступны в вашей установке Magento по умолчанию, например, для Мексики.

Вы настраивали поля адреса доставки при оформлении заказа?

mattsches
источник
2

Ознакомьтесь с ответами на переполнение стека:
/programming/5978153
/programming/11281543

По сути, быстрый и грязный способ - скопировать весь файл в ваш app/code/local/Mageмир, но было бы еще лучше для обновлений, если бы вы могли перегрузить только одну функцию.

Кроме того, если еще нет, пожалуйста, используйте Github для контроля версий. Это спасло меня не раз! Вы можете легко отслеживать все изменения, даже если вы плохо работаете и редактируете основные файлы.

Крис К
источник
Я удивлен, что нет лучшего способа сделать это, не говоря уже о странности этой проблемы, существующей в Magento. Должна быть опция в бэк-энде, если такие ошибки кажутся распространенными в течение некоторого времени. Я предполагаю, что я буду использовать грязный локальный файловый подход, потому что написание нового модуля пока кажется слишком сложным :) я буду копать глубже ... tnx в любом случае!
рутер
Я больше не удивлен тем, что делает Magento.
Крис К
1
это не звучит многообещающе: /
Ruuter