Pedido de WooCommerce siempre entra como pendiente de pago

Hola, pegue el codigo en functions.php pero me siguen entrando los pedidos como “Pendiente de pago”. Que podra ser? tal vez haya cambiado algo en el plugin de MP?

Alguien pudo solucionar este problema?
Por qué tengo el mismo! El pago por tarjeta nunca sale del estado “pendiente de pago” a pesar de ser aprobado por MercadoPago. Lo probé solo en modo sandbox (no localhost), Pero debería funcionar igual.

Woocommerce 3.7.1
WordPress 5.2.4
MercadoPago 4.0.8

Estoy teniendo el mismo problema en Sandbox, no lo pase a producción aun.
Pudieron solucionarlo?

Mismo Problema en sanbox

Bueno en sandbox no funciona las notificaciones ( IPN o Webhook) de MercadoPago y estos son los encargados de cambiar el estado en Woocommerce, así que puede ser ese el motivo.

Otra forma que pueden hacer pruebas es usar sus credenciales de producción pero al pagar usar un usuario de prueba, ya que MP permite usar usuarios de prueba en el mismo ambiente de producción, aqui la nota : https://www.mercadopago.com.ar/developers/es/guides/payments/api/testing/

Saludos

1 me gusta

Me funciono en modo produccion con un usuario de prueba
con las credenciales de produccion de Checkout personalizado de ese usuario.

Luego cree otro usuario de testeo para usarlo como comprador.

Usando usuarios de prueba con la Token de producción… funciona la IPN?

Por cierto aquí una guía de usuarios de prueba en MP : https://blog.letsgodev.com/tips-es/crear-usuarios-de-prueba-en-mercadopago/

Funcionó perfecto!! Muchas gracias. En este caso siempre es cuando el pagó fue aprobado en mercado pago no. En otro caso (fallido o error en el pago) no entraría en este script no?

Buenas gente! Venia teniendo el mismo problema y me volvi loca intentando buscar una solucion, obviamente desde mercadopago no me dieron ninguna.
Les cuento como lo solucione: elimine el plugin, genere nuevas credenciales y actualice la version de wordpress y php del servidor a la ultima disponible (php 7.4.4).
Volvi a instalar el plugin y configure las credenciales nuevamente y ahora funciona todo correctamente :slight_smile:

Saludos!

Al momento de pagar con el usuario comprador de prueba me da error “una de las partes con la que intentas hacer el pago es de prueba” (con mercadopago en Produccion). Sabes cual es el problema?
Muchas gracias desde ya.

Ambos usuarios deben ser de prueba, tanto el comprador como el vendedor, así que el usuario vendedor debe generar sus propias credenciales de producción y usar esas.

Saludos

1 me gusta

Ahh entendido. Ahora genero ambos usuarios. En caso de que funcione, o no. Que significaria? Es decir, descarto algun tipo de problema?

Saludos y gracias.

Actualizo: En mi caso luego de implementar ambos usuarios de prueba, y en modo produccion, el pedido sigue quedando pendiente de pago y sin notificacion de correo de woo. Asi que procedo a reinstalar el sitio integro. Aporto luego si se soluciona.
Saludos y gracias.

Ya he actualizado

  • PHP 7.4.4
  • Wordpress 5.4.2
  • WooCommerce 4.2.0
  • Plugin Mercado Pago 4.2.1

y generé nuevas credenciales… :disappointed: y sigue todo igual:
Sigue pendiente de pago.

Creo que el error puede venir desde la página de finalizar compra,
en la que no se procesa el pago de retorno al sitio:

https://example.com/finalizar-compra/order-received/XXXXX/?key=XXX&collection_id=XXX&collection_status=approved&external_reference=XXX&payment_type=account_money&merchant_order_id=XXX&preference_id=XXX&site_id=MLA&processing_mode=aggregator&merchant_account_id=null
.

Hola! Si a alguien le interesa, tengo solución para ese problema. Y además funciona tanto en modo Sandbox como en Producción.

articulo.mercadolibre.com.ar/MLA-852622178-solucion-wordpress-woocommerce-learnpress-mercadopago-_JM

Saludos y cualquier cosa me consultan!

A mi me sucedía lo mismo, de un momento a otro el estado de pedido hecho por mercado pago se quedaba en pendiente aun cuando si se registraba el pago, después de buscar me di cuenta que días atrás había creado una regla de firewall desde mi cuenta de cloudflare donde bloqueaba las peticiones de estados unidos y solo dejaba peticiones de bots buenos. Desactive esta regla y realice pruebas y todo volvió a la normalidad. Esto generalmente sucede porque se bloque la ip que genera la petición de mercado libre. Espero sea de ayuda.

Exacto!, ojo también con el modo Bot Fight de CF que bloquea las peticiones de MP, si lo tienen activo hay que agregar una regla de firewal para MP.

lo acabo de solucionar con lo que dijo Joseph_mora, tenia una regla de firewall en cloudflare para rechazar ingresos de estados unidos. La desactive y funcionó

Parce y cómo se hace eso ?