Errores de dirección de envío de PayPal

12

Estoy tratando de probar mi tienda con PayPal Sandbox . Recibo 2 errores diferentes en 2 situaciones diferentes.
1. Todo funciona bien hasta finalizar el pedido en PayPal. Luego recibe el mensaje:

Lo sentimos, PayPal no permite que los residentes de los Estados Unidos envíen compras a (cualquier lugar)

2. La segunda situación es cuando luego cambio la dirección de envío de mi comprador a EE. UU. Recibo el siguiente error, en la primera página de PayPal:

No se puede procesar el pago. Comuníquese con el comerciante ya que la dirección de envío proporcionada por el comerciante no es válida, y el comerciante ha solicitado que su pedido se envíe a esa dirección.

Descubrí el formulario aquí , que parece ser un problema para muchos. Desde aquí descubrí que hay algo que ver con el método address_override y aquí se sugiere desactivarlo.
¿Hay alguna manera de apagarlo en Magento? ¿Es seguro apagarlo? ¿Por qué está allí en primer lugar? o qué otras soluciones hay por ahí? :

Encontré el método address_override en magento en

\ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php línea: 238 $ request ['address_override'] = 1;

Lo cambió a '0' y ahora funciona sandbox de PayPal. Ya no hay errores. Pero, ¿cómo puedo hacer esto sin cambiar los archivos principales de magento? y es seguro

ruuter
fuente
1
Me gustaría señalar algo más a otros que sufren con las pruebas de Paypal. Lo hice funcionar después de desactivar address_override, pero luego me quedé atrapado en el estado de 'Revisión de pago' en paypal. Resulta que debe tener la misma moneda en la configuración de Magento que tiene en la cuenta de sandbox de Paypal. De lo contrario, PayPal nunca activa IPN para completar el pedido.
Ruuter

Respuestas:

7

Puede hacer lo siguiente si no desea cambiar los archivos principales:

  1. Crear carpetas Mage/Paypal/Model/Apien/app/code/local/
  2. Copie el archivo Standard.phpde/app/code/core/Mage/Paypal/Model/Api
  3. Pegue el archivo Standard.phpen/app/code/local/Mage/Paypal/Model/Api
  4. Cambie la línea 238 de
$ request ['address_override'] = 1;

a

$ request ['address_override'] = 0;
Omar Faruk Sharif
fuente
7

El address_overrideparámetro está ahí para establecer la dirección de envío que su tienda Magento está enviando a Paypal como dirección de envío en lugar de la dirección de envío del cliente guardada en el lado de Paypal.

Si address_overridese establece en 1, como es el caso en Magento, Paypal validará la dirección de envío. Si el parámetro se establece en 0, supuestamente no lo hace. Así que asegúrese de enviar una dirección válida y bien formateada a Paypal.

Me encontré con este problema debido a la falta de un valor de "estado". Paypal solo acepta abreviaturas estatales como "CA" para "California". Para otros países, los estados pueden no estar disponibles en su instalación de Magento de forma predeterminada, por ejemplo, para México.

¿Personalizó algún campo de dirección de envío en su pago?

Mattsches
fuente
2

Consulte estas respuestas de desbordamiento de pila:
/programming/5978153
/programming/11281543

Básicamente, una forma rápida y sucia es copiar todo el archivo a su app/code/local/Magemundo, pero sería aún mejor para las actualizaciones si pudiera sobrecargar solo la función única.

Además, si aún no lo está, use Github para el control de versiones. ¡Me ha salvado más de una vez! Puede realizar un seguimiento de todos los cambios fácilmente, incluso si está siendo malo y está editando archivos principales.

Chris K
fuente
Me sorprende que no haya una mejor manera de hacerlo, sin mencionar la rareza de este problema que existe en Magento en primer lugar. Debería haber una opción en el back-end si tales errores parecen ser comunes desde hace algún tiempo. Supongo que usaré el enfoque de archivo local sucio, porque escribir un nuevo módulo porque parece demasiado por ahora :) Voy a profundizar ... tnx de todos modos!
Ruuter
Ya no me sorprende nada de lo que hace Magento.
Chris K
1
eso no suena prometedor: /
ruuter