Ejemplo de código para conectarnos con un webservice utilizando la librería curl.
Esta práctica está hecha en dos partes, en la primera parte nos conectamos y logeamos en un webservice usando curl, nos devolverá un json con las claves y las firmas para poder realizar la siguiente conexión.
En la segunda parte nos conectamos utilizando la clave y la firma, hacemos la petición de productos que nos los devolverá en un json que después convertiremos en objeto para poderlo manejar “mejor”.
En esta primera parte nos conectamos y logeamos en la URL de control, que nos dará un key y una firma para poder después logearnos en el otro webservice que nos permitirá extraer los productos.
Primera parte:
/********************** GET Firma *************************************/ $url = "http://api.---------------------------"; $content = (' { "user": "paquete", "parameters": { "email": "blablabla@gmail.com", "passwd": "pass111" } , "session-key" : "", "signature": "" } '); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); $response = json_decode($json_response, true); $response=(object)$response; $sessionKey= $response->results['session-key']; |
Segunda parte:
En esta parte nos conectamos utilizando la clave y la firma, hacemos la petición de productos que nos los devolverá en un json que después convertiremos en objeto para poderlo manejar “mejor”.
/********************** GET SKUs2 *************************************/ echo $json_parameters.'</br>'; echo $signature.'</br>'; echo $sessionKey.'</br>'; $json_parameters = json_encode((Array)$parameters); $signature = md5($json_parameters . $session_key); $url = "http://api.---------------------------2"; $content = (' { "user": "paquete", "parameters": [], "session-key" : "'.$sessionKey.'", "signature": "'.$signature.'" } '); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); /* if ( $status != 201 ) { die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); }*/ curl_close($curl); $response = json_decode($json_response, true); $response=(object)$response; $elarray=(array)$response; // Conocer el tamaño del array/objeto // end($elarray[results][resultado]); $fin = key($elarray[results][resultado]); //Mostrar el Objeto printr($response); |