
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); |