Joaquín Calderón Posted December 11, 2018 Share Posted December 11, 2018 (edited) Buenas! Tengo un problema que ha surgido de repente en una App que tenemos publicada desde hace 3 años, y es que las web services han dejado de funcionar, y ni siquiera muestran ningún error cuando activamos el modo debug. No sé si habrá cambiado algo estos últimos meses que sea significativo, en el uso de la librería PSWebServiceLibrary.php, he estado buscando información pero no encuentro nada. Este es un código de ejemplo de una de las llamadas a la web service: function crear_carrito ($datos) { // CREACION DEL CARRITO try { // Construcción del xml a enviar, a partir del XML vacio de un carrito $webService = new PrestaShopWebservice(PS_SHOP_PATH, 'XXXXX', DEBUG_PRESTASHOP); $postXml = " <prestashop> <cart> <id_address_delivery>".$datos->id_address_delivery."</id_address_delivery> <id_address_invoice>".$datos->id_address_invoice."</id_address_invoice> <id_currency>".$datos->id_currency."</id_currency> <id_lang>".$datos->id_lang."</id_lang> <id_customer>".$datos->id_customer."</id_customer> </cart> </prestashop> "; $xml = new SimpleXMLElement($postXml); // Definimos las opciones a enviar a la webservice y la llamamos $opt = array( 'resource' => 'carts', 'postXml' => $xml->asXML() ); $xml = $webService->add($opt); // Obtenemos el id del carrito recien creado, que hay que pasar antes a array ya que es xml $id_carrito = $xml->cart->id; $id_carrito = (array) $id_carrito; $id_carrito = $id_carrito[0]; } catch (PrestaShopWebserviceException $e) { $id_carrito = false; } return $id_carrito; } Un ejemplo de datos que recibe la función anterior (para un usuario sin logear), sería: $datos = (object) [ "id_address_delivery" => 0, "id_address_invoice" => 0, "id_currency" => 1, "id_lang" => 1, "id_customer" => 0 ]; El resultado que da la web service por pantalla en el navegador, con el modo debug activo, lo adjunto a continuación. Edited December 11, 2018 by Joaquín Calderón (see edit history) Link to comment Share on other sites More sharing options...
gusman126 Posted December 11, 2018 Share Posted December 11, 2018 ¿puede ser por instalar un certificado SSL y ahora las URL son https en vez de http ? las ordenes curl no deberian tener problemas, pero me parece que hay una opción para que no verifique el certificado. o cambia a https las llamadas a ver si puede ser por eso 1 Link to comment Share on other sites More sharing options...
Joaquín Calderón Posted December 12, 2018 Author Share Posted December 12, 2018 11 hours ago, gusman126 said: ¿puede ser por instalar un certificado SSL y ahora las URL son https en vez de http ? las ordenes curl no deberian tener problemas, pero me parece que hay una opción para que no verifique el certificado. o cambia a https las llamadas a ver si puede ser por eso Gracias por contestar Acabo de caer en otra cosa que podía ser al comentarme lo del https, y efectivamente eso era. Se ve que cuando cambiaron a https, además de una redirección para forzar el https, pusieron una redirección para forzar la web sin www. En las webservices yo tenía la URL de la tienda definida como https://www.mi-tienda.com, así que ahí está el tema, parece que tiene que ser la URL exacta sin redirecciones. Esto siempre ha funcionado porque claro, la web aceptaba ambos casos, no-www y www Link to comment Share on other sites More sharing options...
gusman126 Posted December 12, 2018 Share Posted December 12, 2018 Ok, era algo logico que podia ser algo asi, y curiosamente tuve el mismo problema en una web Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now