php - setup - Paypal IPN siempre devuelve "payment_status: Pending" en sandbox?
paypal sandbox ipn (12)
https://www.sandbox.paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true
Allow payments sent to me in a currency I do not hold
enYes
en todas las cuentas de usuario en el entorno limitado, pero aún no funcionaba.También traté de crear las mismas monedas en el formulario de PayPal, y para las cuentas de usuario de la zona de pruebas here Convertir la moneda nueva en primaria. Conversión de dinero a la nueva moneda. Todavía no hay éxito
Entonces noté la última frase de la respuesta de Wes Hanney: "confirme su cuenta comercial usando el front-end de PayPal Sandbox". Probar esto tampoco funcionó.
MGPalmer sugirió en su respuesta para crear una cuenta mercantil alemana. Tampoco funcionó.
¡Qué lío!
Después de una hora, cuando estaba cerca de tirar la PC por la ventana, me di cuenta de que olvidé una cosa. Cambiar mi dirección de correo electrónico real del destinatario en el formulario de PayPal a la dirección de correo electrónico del comerciante de la zona de pruebas. Eso lo resolvió finalmente para mí.
PD: ¿Tal vez un error estúpido de principiante? Pero podría ser útil para otros que se encuentran en la misma situación.
Estoy tratando de implementar PayPal en mi sitio web.
Uso esta clase: http://www.micahcarrick.com/php-paypal-ipn-integration-class.html
En este momento estoy probando usando el sandbox de PayPal.
Aquí está el problema:
- El usuario realiza el pago - ok
- El usuario vuelve a mi sitio web con éxito - ok
- Después de unos segundos, PayPal llama a mi sitio web usando IPN - ok
- Mi clase valida con éxito los datos entrantes de IPN.
- PayPal devuelve "payment_status: Pendiente"
No sé por qué PayPal IPN devuelve la llamada con el estado de pago de "pendiente".
¿Alguien sabe lo que estoy haciendo mal?
Cuando inicie sesión en su cuenta comercial de prueba, navegue manualmente a:
https://www.sandbox.paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true
Normalmente, usted podría acceder a través de su "Configuración de Mi Negocio", pero actualmente se redirige a PayPal en vivo (a pesar de estar en la caja de arena).
Una vez que esté en esa página, cambie "Bloquear pagos enviados a mí en una moneda que no tengo" a "No, acéptelos y conviértelos en ..."
Además, no se olvide de confirmar su cuenta comercial utilizando la sección de front-end de PayPal Sandbox y la sección "Probar correo electrónico de prueba" de la API.
De forma predeterminada, su cuenta comercial de PayPal está limitada a unas pocas monedas aceptadas que se eligen según su configuración regional. Los pagos realizados con monedas no aceptadas se mantendrán en estado pendiente / abierto. Para admitir o aceptar esas monedas, debe agregarlas a la lista de "monedas aceptadas" en PayPal. Para hacerlo, sigue estos pasos:
- Inicie sesión en PayPal con su cuenta comercial de Paypal
- Vaya a "Perfil"> "Perfil y configuración"> "Mi dinero"> "Monedas"
- Agregue las monedas que desea admitir.
Observación: cuando use las cuentas de la zona de pruebas cuando realice la prueba, debe realizar esto también para su cuenta de espacio aislado de facilitador después de iniciar sesión en esta cuenta mediante la URL: https://www.sandbox.paypal.com/
Después de lidiar con este problema un poco y PayPal cambia la interfaz de usuario,
Estas son las instrucciones exactas del Soporte técnico de vendedor de PayPal :
Gracias por contactarse con el Soporte técnico de Merchant.
Intente seguir las instrucciones a continuación para desactivar la función de revisión de pagos de su cuenta de Sandbox:
- Ir al sitio web de desarrolladores de PayPal
- Inicia sesión en tu cuenta de desarrollador
- Haga clic en Aplicaciones
- Haga clic en cuentas de Sandbox
- Haga clic en la dirección de correo electrónico en la que desea desactivar la opción de revisión de pago y haga clic en Perfil después de expandir
- Haga clic en Configuración
- Y seleccione Desactivado para la revisión de pago.
- Click Cerrar
!!! ¡Asegúrese de estar haciendo esto en su cuenta comercial de PayPal SandBox !
& Eso es lo que parece:
Dos posibles razones:
1. la cuenta del vendedor tiene la opción de aceptar o rechazar el pago
En este caso, debe iniciar sesión como vendedor y aceptar el pago, y obtendrá otra IPN con payment_status = Completed
Pasos:
- inicia sesión en tu desarrollador central
- presione "cuentas de prueba" a la izquierda
- seleccione la cuenta del vendedor y presione "Entrar al sitio de prueba de sandbox" en la parte inferior
- Debería ver el panel del vendedor con la opción de aceptar o rechazar cualquier pago (es posible que deba volver a iniciar sesión en este paso utilizando las credenciales de la cuenta de prueba del vendedor)
2. La revisión de pago está habilitada
Solución:
- Inicie sesión en su Developer Central.
- Haga clic en la pestaña Cuentas de prueba a la izquierda. Deberías haber creado estas cuentas de prueba para probarlas en Sandbox.
- Encuentre la columna ''Revisión de pago''.
- Busque la cuenta de espacio aislado que está utilizando y haga clic en "Activado" en la columna "Revisión de pago".
Esto debería cambiar a "Desactivado" y ahora los pagos financiados con su saldo y tarjeta de crédito se completarán al instante.
Hay una cosa más que puede necesitar verificar:
Asegúrese de que la codificación del idioma de su cuenta de PayPal esté configurada en UTF-8. En algunas circunstancias, esto se configura de forma predeterminada como ''windows-1256''. Para cambiarlo a UTF-8, necesita:
- entra en tu perfil y luego "mis herramientas de venta"
- allí, en la parte inferior, haga clic en "Codificación de idioma de botón de PayPal"
- En la siguiente página debe hacer clic en "Más opciones" donde finalmente puede establecer la codificación
Cada cuenta de Paypal que configuré en Alemania estaba configurada para codificar el idioma "windows ..." de forma predeterminada. Entonces IPN no funcionará con un sitio web codificado en UTF-8, incluso en Woocommerce o EDD o espresso para eventos.
La solución es lo que @Jadeye explica:
Ir al sitio web de desarrolladores de PayPal
- Inicie sesión en su cuenta de desarrollador (sandbox)
- Haga clic en Aplicaciones
- Haga clic en cuentas de Sandbox
- Haga clic en la dirección de correo electrónico en la que desea desactivar la opción de revisión de pago y haga clic en Perfil después de expandir
- Haga clic en Configuración
- Y seleccione Desactivado para la revisión de pago.
- Click Cerrar
Mi problema era que mi cuenta mercantil sandbox se hizo como un usuario británico (y GBP como moneda). Cuando traté de cumplir con las órdenes en coronas danesas (DKK), me decía que la compra era "No reclamada" en la vista de comerciante. Tan pronto como se aceptó un pedido en DKK y decidí crear una nueva moneda en DKK, IPN me envió todos los mensajes "payment_status = completed".
Ninguna de las soluciones anteriores funcionó para mí, pero me ayudó a encontrar la solución.
Si está utilizando una cuenta comercial y de comprador predeterminada, tal vez esta solución funcione para usted.
Vaya a developer.paypal > sandbox.accounts
https://developer.paypal.com/developer/accounts/Inicie sesión y haga clic en el ícono de clonación en su cuenta comercial de sandobx y en su cuenta de comprador
Establezca nuevos nombres y correos electrónicos y haga clic en crear nueva cuenta
Abra el perfil de ambas cuentas y asegúrese de que Payment Review esté desactivado.
Edite su cuenta objetivo en su código / aplicación y coloque la nueva cuenta comercial
Repita la transacción usando la nueva cuenta de comprador
Esta solución no solo resolvió mi problema. Gracias a ello, el diseño de sandox.paypal cambió al nuevo diseño que usa cuentas reales .
Esto es importante porque algunos de los datos recibidos por IPN en este caso pueden responder con un nombre diferente.
Problema similar aquí: mi cuenta de comerciante (sandbox) se creó como en los EE. UU. Y estaba intentando realizar pagos en euros.
Para mí, no importaba qué configuración cambiara, solo funcionó después de crear una nueva cuenta de comerciante basada en Alemania.
Puedes resolverlo con las siguientes instrucciones.
Inicie sesión en su Developer Central.
Haga clic en la pestaña Cuentas de prueba a la izquierda. Deberías haber creado estas cuentas de prueba para probarlas en Sandbox.
Encuentre la columna ''Revisión de pago''.
Busque la cuenta de espacio aislado que está utilizando y haga clic en "Activado" en la columna "Revisión de pago".
Esto debería cambiar a "Desactivado" y ahora los pagos financiados con su saldo y tarjeta de crédito se completarán al instante.
Tuve el mismo problema, y ninguna de las sugerencias aquí funcionó. Entonces me di cuenta de que el problema era que estaba tratando de hacer un pago de una cuenta de caja de arena a una cuenta real. Entonces, por ejemplo, si su cuenta comercial registrada es: [email protected]
entonces todos los pagos de la zona de [email protected]
deben hacerse a [email protected]
contrario terminarán en modo PENDIENTE.