Problema con la notificación del webservice
-
Hola buenas,
Hace poco comencé a tener un error en la página con los sistemas de pagos. Estos actuan normalmente, de hecho, incluso, yo recibo el dinero, PERO, a la hora de cambiar el estado del pedido, la página no lo hace automáticamente porque nunca recibe la notificación de que el pedido fue pagado, y queda «pendiente de pago».
Así, los métodos de pago que he empleado me envían un aviso diciendo que hubo un fallo en la notificación, porque, y cito: «No pudo ser completada la notificación por webservice».
Entiendo que esto causa que el POST que envía el método de pago, la página no lo recibe en ningún momento y por esto el pedido nunca queda como pagado.Lo raro es que según yo, no he cambiado nada, tampoco tengo empleado ninguna regla de firewall ni mod-security.
-
Hola @gasspper, disculpa la demora en contestar, no suele ser habitual en los foros de WP.org, pero en estas fechas andamos un poco distraídos.
En cuanto al error que indicas, pueden ser muchos mótivos los que provoquen el fallo. ¿Qué pasarela de pago utilizas? Si usas más de una, ¿te pasa sólo con una o con todas?
Yo te sugeriría lo siguiente. Replica en una instalación limpia tu pasarela de pago en modo prueba. Por ejemplo, Stripe o Paypal tienen un modo testing que permite hacer pagos ficticios. Si te funciona, hay algo que está pasando en tu servidor, que es lo más probable. Para aislar el fallo, lo primero tienes que saber qué está pasando, activa el log de errores de WordPress (https://codex.wordpress.org/WP_DEBUG) y el comprueba si tu pasarela de pagos tiene también log de errores, así podrás ver una descripción completa del error.
Si esto no te ayuda, prueba a desactivar todos los plugins y activar el tema base, TwentySeventeen, por ejemplo, y comprueba que funciona la pasarela. Si así es, es posible que algún plugin esté interfiriendo con la misma, así que empieza a activar uno a uno para ver cuál provoca el error, así como el tema que estés utilizando.
Espero haberte dado alguna pista por dónde ir, si sigues teniendo problemas con este asunto háznoslo saber y seguiremos intentando ayudarte.
Un saludo.
No hay problema con el retraso, igualmente no he tenido tiempo para ver a que se debe el problema, incluso pensé en hacer la página nuevamente desde 0. Pero ahora ya la cosa va más allá de simplemente hacerla funcionar. Quiero averiguar a que se debe.
Con todas las pasarelas de pago pasa lo mismo no es solamente una, eso fue lo primero que comprobé. Y el único error que tienen las pasarelas es ese, el de no poder comunicarse con la página después de realizado el pago. Así que de que el problema está en la página es 100% seguro.
Haré lo del debug y empezaré a buscar uno por uno para ver que es lo que pueda suceder. Muchas gracias por las pistas.El debug me dice lo siguiente:
[21-Dec-2018 21:14:46 UTC] PHP Notice: order_key se llamó incorrectamente. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), include(‘/themes/shopkeeper/page.php’), get_template_part, locate_template, load_template, require(‘/themes/shopkeeper/content-page.php’), the_content, apply_filters(‘the_content’), WP_Hook->apply_filters, call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, WC_Shortcodes::checkout, WC_Shortcodes::shortcode_wrapper, call_user_func, WC_Shortcode_Checkout::output, WC_Shortcode_Checkout::order_pay, wc_get_template, include(‘/plugins/woocommerce/templates/checkout/order-receipt.php’), do_action(‘woocommerce_receipt_khipu’), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_Gateway_khipu->receipt_page, WC_Gateway_khipu->generate_khipu_generate_payment, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong Por favor, visita <a href=»https://codex.wordpress.org/es:Depur in /home/MYSITENAME/public_html/wp-includes/functions.php on line 4196
[21-Dec-2018 21:14:46 UTC] PHP Notice: billing_email se llamó incorrectamente. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), include(‘/themes/shopkeeper/page.php’), get_template_part, locate_template, load_template, require(‘/themes/shopkeeper/content-page.php’), the_content, apply_filters(‘the_content’), WP_Hook->apply_filters, call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, WC_Shortcodes::checkout, WC_Shortcodes::shortcode_wrapper, call_user_func, WC_Shortcode_Checkout::output, WC_Shortcode_Checkout::order_pay, wc_get_template, include(‘/plugins/woocommerce/templates/checkout/order-receipt.php’), do_action(‘woocommerce_receipt_khipu’), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_Gateway_khipu->receipt_page, WC_Gateway_khipu->generate_khipu_generate_payment, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong Por favor, visita <a href=»https://codex.wordpress.org/es:D in /home/MYSITENAME/public_html/wp-includes/functions.php on line 4196
Hola de nuevo @gasspper, veo que el tema que estás usando es un tema de pago. No podemos dar soporte a este tipo de temas en el foro de WordPress.org. Para aislar que el problema esté en él, ¿pudieras crear un sitio de pruebas desde una copia de tu sitio, tal vez usando Duplicator, e instalar un tema básico como TwentySeventeen? Una vez que lo tengas, haz una prueba con cualquier pasarela de pago, si el problema no aparece, entonces tendrás que contactar con el soporte del tema Shopkeeper: https://themeforest.net/item/shopkeeper-ecommerce-wp-theme-for-woocommerce/9553045/support
Espero haberte ayudado, pero si sigues teniendo problemas no dudes en volver a preguntar por aquí.
Saludos.
Aún no he podido resolver el problema, volví la página a 0, de hecho se eliminó todo en el servidor, todo, y volvió a crear mi cliente.
Los únicos plugins que tengo instalados son el de woocommerce, el metodo de pago y el SSL, que de hecho el SSL no lo tenía cuando comenzó a pasar así que no es el problema.
Y lo único que cambiar en el debug es que ahora me tira el error en vanilla, sin ningún tema.[06-Jan-2019 06:19:32 UTC] billing_email was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_COD->process_payment, WC_Order->update_status, WC_Order->save, WC_Order->status_transition, do_action('woocommerce_order_status_processing'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, SB_WC_Licences->action_woocommerce_order_status_completed, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0. [06-Jan-2019 06:19:32 UTC] billing_first_name was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_COD->process_payment, WC_Order->update_status, WC_Order->save, WC_Order->status_transition, do_action('woocommerce_order_status_processing'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, SB_WC_Licences->action_woocommerce_order_status_completed, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0. [06-Jan-2019 06:19:32 UTC] billing_last_name was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_COD->process_payment, WC_Order->update_status, WC_Order->save, WC_Order->status_transition, do_action('woocommerce_order_status_processing'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, SB_WC_Licences->action_woocommerce_order_status_completed, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
Hola @gassper, por el error que te arroja parece que es un problema del plugin de pago, ¿cuál es ese plugin? ¿Está en el repo de WordPress.org? ¿Puedes mandarnos un enlace?
Gracias, un saludo.
El plugin es este: https://es.wordpress.org/plugins/woocommerce-khipu/
Pero no es con el único que he tenido problemas en realidad.Acabo de probar todo tal cuál, desde otro proveedor incluso, otro servidor, monté la página desde 0 y el medio de pago falla, igualmente.
He notado una diferencia, en la página de antes y la de ahora, es decir, cuando me funcionaba y ahora que no me funciona, es que el proceso de «checkout» cambia de nombre, ahora está como «finalizar-compra», en realidad no creo que afecte ese nombre. Pero quién sabe.
Intentaré cambiandole el nombre, si es posible.
La verdad ya no sé que más intentar.
- El debate ‘Problema con la notificación del webservice’ está cerrado a nuevas respuestas.