arrow_upward
Estado del servicio

SANDBOX
Estado: Activo
check_circle

URL SANDBOX::
http://core.pickitlabs.com/app.php/CallMethod

PRODUCCIÓN
Estado: Activo
check_circle

URL PRODUCCIÓN:
http://core.pickit.net/app.php/CallMethod

Arquitectura del webservice


Se creará un usuario de servicios al que se le asignará un API Key. Sólo utilizando el mismo el Retailer/Comercio podrá comunicarse con nuestra plataforma. Además el Retailer/Comercio deberá enviarnos el/los dominio/s o IPs desde donde se realizará el request para agregarlas al listado de IPs/dominios válidos.

Una vez realizados los pasos anteriores se comunicarán a su correspondiente servicio pasando como parámetros en el request los valores básicos de comunicación que serán los siguientes:

										
											'ApiKey' => PickitConstants::API_KEY,
											'Metodo' => $metodo,
											'Parametros' => $parametros
										
									

Estos parámetros deben venir como un JSON dentro del request así el sistema de servicio puede interpretarlos correctamente, aquí mostramos un ejemplo de comunicación de cómo deberían construir el servicio:

								
								public function Call($metodo, $parametros)
									{
										$parametros = json_encode($parametros);
										
										$data = json_encode(array('ApiKey' => PickitConstants::API_KEY,
																  'Metodo' => $metodo,
																  'Parametros' => $parametros));
										
										$postdata = http_build_query(
											array(
												'value' => $data
											), '', '&');

										$opts = array('http' =>
											array(
												'method'  => 'POST',
												'header'  => 'Content-type: application/x-www-form-urlencoded',
												'content' => $postdata
											)
										);

										$context  = stream_context_create($opts);

										$result = file_get_contents(PickitConstants::WEB_PICKIT_SERVICES,
																	false, $context);
										
										return json_decode($result);
									}	
								
							

De esta forma la comunicación se puede realizar en cualquier tecnología.

A continuación se listarán los métodos habilitados disponibles para recibir una llamada cuya arquitectura se encuentra dividida en dos. En primer lugar se debe informar el método que se desea utilizar, y luego se debe adjuntar un array con los parámetros asociados al mismo.

Como respuesta se obtienen 2 objetos:

- Status

Status es un objeto que contiene 2 propiedades, Code y Text. Aquí mismo vendrá el código de error en caso de suceder alguno y el texto correspondiente. En caso de que todo esté bien devolverá un código 200 con un mensaje de OK.

- Response

En el objeto response vendrá la respuesta del método al cual se llamó y su contenido. Es posible que dependiendo del método ejecutado sólo se obtenga como respuesta en esta sección un True or False. Más adelante se especificará en detalle la respuesta de cada uno de los servicios.

Ejemplo de una respuesta de un servicio:

							
								{
								   "Status": {
									  "Code": "200",
									  "Text": "OK"
								   },
								   "Response": {
									  "DatosGeneral": {
										 "Cadena": "Cadena3",
										 "Sucursal": [
											{
											   "Nombre": "PuntoPickit2",
											   "IdPuntoPickit": 2
											}
										 ],
										 "Usuario": "Usuario Punto Pickit2"
									  },
									  "DatosDashboard": {
										 "Deposito": 0,
										 "Recibir": 0,
										 "Devolver": 0,
										 "Transacciones": 0,
										 "Calificacion": 0,
										 "Calificaciones": 0
									  }
								   }
								}
							
						
Estructura de Notificaciones

Comunicación de cambios de estados al Retailer: El Retailer deberá generar token para el sistema Pick It y habilitar URL para poder recibir un PUSH a la misma. Este estará conformado por tres parámetros: Token, IdTransaccion y Estado. También guardará el dominio desde el que Pick It realizará el PUSH para validar el origen de la comunicación. Pick It guarda toda esta información asociada al Retail.

Por cada cambio de estado en una transacción en las que el proceso definido solicite que se le deba notificar al Retailer, Pick It ejecutará la URL que retailer disponibilizó y realizará el PUSH de la siguiente manera:

"www.retail.com/urlinterna/statusreception?token=15090d8871cf1516&CodigoTransaccion=6X82F&IdEstado=702"
El retailer validará el origen de la comunicación y el Token. Realizada la comprobación de validación, el retailer sabrá que hubo un cambio de estado en la transacción enviada por parámetro, volviendo al ejemplo, se realizó un cambio de estado en la transacción “6X82F". Recibida esta transacción el retailer debería capturar los parametros de la URL y actualizar su estado, en base al parámetro de la transacción y al del estado.

ID WORKFLOW ESTADO
801 Envío Iicial
802 Envío En Retailer
803 Envío Disponible para colecta
804 Envío Courier
805 Envío Devuelto a Remitente
806 Envío En Punto
807 Envío Retirado
808 Envío Vencido
809 Envío Siniestrado