Estoy desarrollando un script, en el cual al momento de ingresar un nuevo usuario en una plataforma, se ingrese los datos de este mismo usuario en otra plataforma distinta.
Para este efecto uso el siguiente código:
Código PHP:
<html>
<head>
<title>Uso de API de ProcessMaker</title>
<meta charset="UTF-8">
<?php include "NuevoCaso.php"?>
</head>
<body>
<?php
$user = '*****';
//$pass = '*******';
$pass = '********';
ini_set("soap.wsdl_cache_enabled", "0");
$cliente = new SoapClient("http://p***************o:80/sysPQRS/es/classic/services/wsdl2");
$parametros = array(array('userid'=>$user, 'password'=>$pass));
$resultado = $cliente->__SoapCall('login', $parametros);
if($resultado->status_code == 0)
{
echo "Sesión iniciada exitosamente <br><br>";
$sessionId = $resultado->message;
/*Listar los usuarios*/
echo "<br><br> Lista de usuarios_____________________________________<br>";
$parametros = array(array('sessionId'=>$sessionId));
$resultado = $cliente->__SoapCall('userList', $parametros);
$usersArray = $resultado->users;
if (is_array($usersArray))
{
foreach ($usersArray as $user)
{
echo "User name: $user->name, User ID: $user->guid <br>";
}
}
else
{
echo "Error: $usersArray->name <br>";
}
/*Crear un nuevo usuario*/
echo "<br><br> Nuevo Usuario_____________________________________<br>";
$parametros = array(array('sessionId'=>$sessionId, 'userId' => 'JoseO',
'firstname'=>'Jose', 'lastname'=>'Ojeda', 'email'=>'[email protected]',
'role'=>'PROCESSMAKER_OPERATOR', 'password'=>'123456'));
//$resultado = $cliente->__SoapCall('createUser', $parametros);
if ($resultado->status_code == 0)
{
echo "$resultado->message <br> User ID: $resultado->userUID";
$session = curl_init('http://smart.parquesoftpasto.com/api?task=newuser');
curl_setopt ($session, CURLOPT_POST,1);
//le decimos qué parametros enviamos (pares nombre/valor, también acepta un array)
curl_setopt ($session, CURLOPT_POSTFIELDS, "[email protected]&password=123456&name=Jose&apellido=Ojeda&identificacion=123456");
curl_setopt($session,CURLOPT_RETURNTRANSFER,1);
print_r($session);
$respuesta = curl_exec($session);
if($respuesta != 0)
{
echo "<br>Usuario creado exitosamente en Ushahidi!!!!";
print_r($respuesta);
curl_close ($session);
}
else
{
echo "<br>Imposible crear usuario en base de datos de ushahidi";
$error = curl_error($session);
echo "<br>".$error;
print_r($respuesta);
curl_close ($session);
}
}
else
{
echo "<br>Incapaz de crear usuario en ProcessMaker.<br>Error Number: $resultado->status_code<br>"."Mensaje de Error: $resultado->message<br>";
}
/*Listar Casos*/ /*
echo "<br><br> Lista de Casos_____________________________________<br>";
$parametros = array(array('sessionId'=>$sessionId));
$resultado = $cliente->__SoapCall('caseList', $parametros);
$casosArray = $resultado->cases;
$n=0;
if ($casosArray != NULL)
{
foreach ($casosArray as $caso)
{
//while($n<count($casosArray))
//{
echo "Nombre del Caso: $caso->name, Caso ID: $caso->gd, Estado: $caso->status, Index: $caso->delIndex <br><br>";
$n++;
//}
}
}
else
{
echo "<br> Hay cero casos. <br><br>";
} */
/*Lista de Procesos*/ /*
echo "<br><br> Lista de Procesos_____________________________________<br>";
$parametros = array(array('sessionId'=>$sessionId));
$resultado = $cliente->__SoapCall('processList', $parametros);
$processesArray = $resultado->processes;
if ($processesArray != NULL)
{
if (is_array($processesArray))
{
foreach ($processesArray as $process)
{
echo "Process name: $process->name, Process ID: $process->guid <br>";
}
}
else
{
echo "Process name: $processesArray->name, Process ID: $processesArray->guid <br>";
}
}
else
{
echo "Error: $processesArray->name <br>";
} */
/*Lista de Tareas*/ /*
echo "<br><br> Lista de tareas_____________________________________<br>";
$parametros = array(array('sessionId'=>$sessionId));
$resultado = $cliente->__SoapCall('taskList', $parametros);
$tasksArray = $resultado->tasks;
if ($tasksArray != (object) NULL)
{
foreach ($tasksArray as $task)
{
echo "<br> Nombre de la tarea: $task->name, Task ID: $task->guid <br>";
}
}
else
{
echo "<br> Hay cero tareas asignadas a este usuario. <br>";
} */
/* Crear Nuevo Caso */ /*
echo "<br><br> Nuevo Caso_____________________________________<br>";
$name = new variableStruct();
$vars = array('APPLICANT_NAME'=>'Carlos', 'APPLICANT_LAST'=>'Jaramillo',
'APPLICANT_ID'=>'123456', 'APPLICANT_EMAIL'=>'[email protected]',
'$APPLICANT_EMPLOYER'=>'ParqueSoft');
$aVars = array();
foreach ($vars as $key => $val)
{
$obj = new variableStruct();
$obj->name = $key;
$obj->value = $val;
$aVars[] = $obj;
}*/
/*Use las funciones Lista de procesos () y Lista de tareas () para buscar los IDs para el
proceso y su primera tarea.*/ /*
$parametros = array(array('sessionId'=>$sessionId, 'processId'=>'82624301853c85a89813cd8090028969',
'taskId'=>'182114808548079fa7decf8034689551', 'variables'=>$aVars));
$resultado = $cliente->__SoapCall('newCase', $parametros);
if ($resultado->status_code == 0)
{
echo "Nuevo ID de caso: $resultado->caseId, Caso No: $resultado->caseNumber \n";
}
else
{
echo "Error al crear caso: $resultado->message \n";
}*/
}
else
{
echo $resultado->status_code;
}
?>
</body>
</html>
Dentro de la API de ushahidi esta el siguiente método que seria el encargado de recibir los datos enviados por el Curl (Se que no los guardo en la BD aun, pero bueno este es un código de ejemplo):
Código PHP:
public function new_user()
{
if(isset($_POST['name']) AND isset($_POST['apellido']) AND isset($_POST['email']) AND isset($_POST['identificacion']) AND isset($_POST['password']))
{
echo "El usuario que intenta ingresar en la BD de Ushahidi es:";
echo "<br>Nombre: ".$_POST['name'];
echo "<br>Apellido: ".$_POST['apellido'];
echo "<br>Email: ".$_POST['email'];
echo "<br>Identificacion: ".$_POST['identificacion'];
echo "<br>Contraseña: ".$_POST['password'];
return 0;
}
else
{
echo "No se ha ingresado algún usuario.";
return 1;
}
}
Solicito su ayuda, pues la verdad no se cual es el error.