0% encontró este documento útil (0 votos)
409 vistas10 páginas

Guía API SOAP para Desarrolladores

Este documento proporciona una guía para desarrollar clientes de la API SOAP de SGC Web Ri505. La API permite obtener datos de operación de una compañía de manera simple, potente y segura. Usa el protocolo SOAP basado en XML para comunicar objetos entre aplicaciones a través de Internet de manera independiente de la plataforma y el lenguaje. La API contiene módulos como Clientes que almacenan información como nombre, RFC, dirección y más. Se pueden realizar llamadas como registrar, obtener último folio y obt

Cargado por

Antonio Garcia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
409 vistas10 páginas

Guía API SOAP para Desarrolladores

Este documento proporciona una guía para desarrollar clientes de la API SOAP de SGC Web Ri505. La API permite obtener datos de operación de una compañía de manera simple, potente y segura. Usa el protocolo SOAP basado en XML para comunicar objetos entre aplicaciones a través de Internet de manera independiente de la plataforma y el lenguaje. La API contiene módulos como Clientes que almacenan información como nombre, RFC, dirección y más. Se pueden realizar llamadas como registrar, obtener último folio y obt

Cargado por

Antonio Garcia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

API SOAP Clientes Guía de desarrollo

Introducción
SGC Web Ri505 dispone de una API (interfaz de programación de aplicaciones (del inglés:
Application Programming Interface), que permite mediante una interfaz simple, potente y segura,
desarrollar aplicaciones para la obtención de los datos de operación de su compañía. Este
documento está dirigido a personas con conocimiento básico para el desarrollo de software, servicios
web (WebServices) y el sistema SGC Web Ri505.

La API de SGC Web Ri505 está basada en el protocolo SOAP (del inglés Simple Object Access
Protocol). El protocolo SOAP es un protocolo estándar que define como dos objetos en diferentes
entornos pueden comunicarse entre si, mediante intercambio de mensajes en formato XML.

¿Qué es SOAP?
• SOAP significa Simple Object Access Protocol
• SOAP es un protocolo de comunicación
• SOAP es para la comunicación entre aplicaciones
• SOAP es un formato para el envío de mensajes
• SOAP se comunica a través de Internet
• SOAP es independiente de la plataforma
• SOAP es independiente del lenguaje
• SOAP se basa en XML
• SOAP es simple y extensible
• SOAP permite la comunicación donde hay firewalls
• SOAP es una recomendación del W3C

Para mas información acerca de SOAP, ingrese al sitio oficial de la ​W3C


(http://www.w3schools.com/webservices/ws_soap_intro.asp):
Ubicación de la API
Para acceder a la API SOAP de SGC Web Ri505 es necesario establecer una conexión a la
siguiente dirección de acceso:

http://[nombre_instancia]/ws/1094AEV2/v2/soap.php

Ejemplo:

http://sgcmovil.sgcweb.com.mx/ws/1094AEV2/v2/soap.php

Autenticación de usuario:
Para poder establecer una conexión a la API, será necesario contar con una cuenta de usuario
previamente registrada así como conocer el password asignado a esta cuenta, esta cuenta de
usuario debe estar ligada a una estación red de tipo “Aplicación externa”.

Información disponible
La arquitectura de la aplicación está basada en módulos funcionales, la información a la que se
puede acceder desde la API es obtenida a través de una cadena de texto basada en objetos
formateados con el estándar JSON (​http://www.w3schools.com/json/​) de los siguientes objetos:

1. Clientes :

Identificador Clientes

Definición Clientes del sistema SGC Web RI505


(*) Campos Obligatorios

Atributos
Atributo Tipo descripción

numero_cliente int(20) Número generado por SGC Web

identificador_externo varchar(50) Identificador de la aplicación externa,


(*) Usado para hacer referencia a un registro.

nombre (*) varchar(150) Nombre Fiscal , Razón social del cliente

rfc (*) varchar(50) Identificador Fiscal del Cliente

calle (*) varchar(150) Calle del Cliente

no_exterior (*) varchar(15) Número exterior

no_interior varchar(15) Número interior

colonia (*) varchar(100) Colonia

localidad (*) varchar(100) Localidad

referencia varchar(100) Ayuda para la dirección

ciudad (*) varchar(100) Ciudad

estado (*) varchar(100) Estado

codigo_postal (*) varchar(20) Código postal


pais (*) varchar(150) País

telefono1 (*) varchar(25) Teléfono Principal

telefono2 varchar(25) Teléfono secundario

activo int(1) Si el cliente está inactivo se bloquean los


pedidos, valores :
“1” Activo
“0” Inactivo.

Cualquier valor diferente a 1 se toma como


inactivo.

email varchar(150) Correo electrónico del cliente

saldo decimal(12,4) Total de consumos que tiene el cliente, se


incrementa con las ventas, y decrementa
con los pagos.

politica_venta_id varchar(50) Identificador externo de la política de venta


relacionada

Atributos para filtrar numero_cliente


identificador_externo

Llamadas disponibles
​ Las llamadas disponibles para clientes son 3 :

1. “registrar” .- Registra o edita un cliente.


2. “obtenerUltimoFolio” .- Obtiene el último folio de clientes registrado
3. “obtenerListaPorFolio” .- Obtiene una lista de clientes en base al folio.

para todas las llamadas es necesario haber iniciado sesión mediante el método de sesión de la api
registrado en el documento SGC WEB Ventas - API SOAP Sesión, a continuación se muestran las
llamadas para el módulo de clientes :
Registrar Cliente

Llamada procesarPeticion

Función Registra o edita información de clientes.

Sintaxis procesarPeticion(session,modulo, accion, paquete)

Parámetros de entrada ● session​: Id de sesión (Obtenido con login)


● modulo​: Identificador del módulo, en este caso: “Clientes”
● accion​: Identificador de la acción del módulo, en este caso: “registrar”
● paquete​: String con el objeto de cliente codificado con el estándar JSON.

Respuesta La respuesta es un objeto con 2 atributos :


● codigo​: Código de proceso nos indica si el proceso se realizó con éxito o no.
● informacion​: Si la acción a ejecutar requiere retornar información entonces el sistema retornará
en este atributo la información.

Tabla de códigos e información de respuesta

Código Información Descripción

0000 json del objeto cliente Éxito, la acción de guardado se


procesó correctamente.

1111 json del objeto cliente Éxito, la acción de edición se


procesó correctamente

101701 Sin información Error, No se recibió información


válida en
identificador_externo.

101702 Sin información Error, No se recibió información


válida en el nombre.

101703 Sin información Error, No se recibió información


válida en el rfc.

101704 Sin información Error, No se recibió información


válida en el telefono1.

101705 Sin información Error, No se recibió información


válida en el atributo calle.

101706 Sin información Error, No se recibió información


válida en el atributo
no_exterior.

101707 Sin información Error, No se recibió información


válida en el atributo colonia.

101708 Sin información Error, No se recibió información


válida en el atributo localidad.

101709 Sin información Error, No se recibió información


válida en el atributo ciudad.

101710 Sin información Error, No se recibió información


válida en el atributo estado.

101711 Sin información Error, No se recibió información


válida en el atributo
codigo_postal (deben de ser 5
números).

101712 Sin información Error, No se recibió información


válida en el atributo pais.

101713 Sin información Error, No se encontró la política


especificada

101714 Sin información Error, campo ‘activo’ es un


valor diferente a ‘0’ y ‘1’.

101715 Sin información Error, valor no válido en campo


telefono2.

101716 Sin información Error, valor no válido en campo


referencia.

101717 Sin información Error, valor no válido en campo


saldo.

101718 Sin información Error, formato no válido para


campo correo.

101719 Sin información Error el rfc, ya existe.

101720 Sin información Error, el formato del rfc es


inválido.
Ejemplo de llamada: $options = array(
"location" => "http://sgcmovil.com/ws/1094AEV2/v2/soap.php",
"uri" => '',
"trace" => 0
);

$user_auth = array(
"user_name" => "aplicaciones_externas",
"password" => MD5("aplicaciones_externas"),
"version" => '.01'
);
$clientsoap = new SoapClient(NULL, $options);
$respuestalogin = $clientsoap->login($user_auth,"pegasus");
$sessionId = $respuestalogin->id;

//Para poder registrar un cliente en SGC WEB se debe crear un objeto Cliente, se tiene que //codificar
como string JSON, ejemplo:

$cliente->numero_cliente = "";//Dejar vacio ya que es asignado por SGC Web


$cliente->identificador_externo = "120045";
$cliente->nombre = "Público en general";
$cliente->rfc = "XAXX010101000";
$cliente->calle = "Paseo del Norte";
$cliente->no_exterior = "5600";
$cliente->no_interior = "";
$cliente->colonia = "Fraccionamiento Guadalajara Technology Park";
$cliente->localidad = "Zapopan";
$cliente->referencia = "Fraccionamiento Guadalajara Technology Park";
$cliente->ciudad = "Zapopan";
$cliente->estado = "Jalisco";
$cliente->codigo_postal = "45010";
$cliente->pais = "México";
$cliente->telefono1 = "Industrial";
$cliente->telefono2 = "";
$cliente->activo = 1;
$cliente->email = "cliente@corporativosade.com.mx";
$cliente->saldo = 0;
$cliente->politica_venta_id = "";

$cliente_json = json_encode($​cliente​);

$respuesta = $clientsoap->procesarPeticion(
$sessionId,
"Clientes",
"registrar",
$cliente_json );

if( $respuesta->codigo = ‘0000’ )


{
echo “Cliente registado con éxito”;
}
else
{
echo “Error , código : ”.$respuesta->codigo;
}
Ejemplo de salida: ● codigo​: ​‘0000’;
● informacion​: ​‘​{"numero_cliente":"145","numero_cuenta":"120045","nombre":"P\u00fablico en
general","rfc":"XAXX010101000","calle":"Paseo del
Norte","no_exterior":"5600","no_interior":"","colonia":"Fraccionamiento Guadalajara
Technology Park","localidad":"Zapopan","referencia":"Fraccionamiento Guadalajara
Technology
Park","ciudad":"Zapopan","estado":"Jalisco","codigo_postal":"M\u00e9xico","pais":"45010","t
elefono1":"Industrial","telefono2":"","activo":true,"email":"cliente@corporativosade.com.mx","
saldo":0,"politica_venta_id":""}​’;

if( $respuesta->codigo = ‘0000’ )


{
echo “Cliente registado con éxito”;
$cliente = json_decode( $respuesta->informacion );//Objeto cliente
}
else
{
echo “Error , código : ”.$respuesta->codigo;
}

Obtener el último folio de clientes

Llamada procesarPeticion

Función Obtiene el folio del clientes más reciente registrado en el sistema SGC Web

Sintaxis procesarPeticion(session, modulo, accion,paquete )

Parámetros de entrada ● session​: Id de sesión (Obtenido con login)


● modulo​: Identificador del módulo, en este caso: ‘Clientes’
● accion​: Identificador de la acción del módulo, en este caso:’obtenerUltimoFolio’
● paquete: ​En este parámetro no se envía información.

Respuesta La respuesta es un objeto con 2 atributos :


● codigo​: Código de proceso nos indica si el proceso se realizó con éxito o no.
● informacion​: Si la acción a ejecutar requiere retornar información entonces el sistema
retornará en este atributo la información.

Tabla de códigos e información de respuesta

Código Información Descripción

0000 Ultimo Folio de clientes Éxito , la acción se procesó


correctamente.

Ejemplo PHP
$options = array(
"location" => "http://sgcmovil.com/ws/1094AEV2/v2/soap.php",
"uri" => '',
"trace" => 0
);

$user_auth = array(
"user_name" => "aplicaciones_externas",
"password" => MD5("aplicaciones_externas"),
"version" => '.01'
);

$clientsoap = new SoapClient(NULL, $options);


$respuestalogin = $clientsoap->login($user_auth,"pegasus");
$sessionId = $respuestalogin->id;

$respuesta = ​$​clientsoap​->procesarPeticion($sessionId, "Clientes", "obtenerUltimoFolio", “”


);

if( $respuesta->codigo = ‘0000’ )


{
$ultimo_folio = $respuesta->informacion;
}

Obtener lista de Clientes

Llamada procesarPeticion

Función Obtiene lista de objetos de clientes.

Sintaxis procesarPeticion(session, modulo, accion, paquete)

Parámetros de entrada ● session​: Id de sesión (Obtenido con login)


● modulo​: Identificador del módulo, en este caso:”Clientes”
● accion​: Identificador de la acción del módulo, en este caso: “obtenerListaPorFolio”
● paquete​: String con formato JSON en un objeto con los atributos ‘folioPosicion’ y
‘cantidadElementos’, en el caso del atributo ‘folioPosicion’ se refiere al folio del cliente
desde el cual se empezarán a obtener los mismos ​( este parámetro es obligatorio ) y el
atributo ‘cantidadElementos’ que se refiere a la cantidad de cliente que se quieren obtener,
la cantidad máxima disponible son 200, más de esta cantidad generará un error ​(este
parámetro no es obligatorio, su valor por defecto es 200).

Respuesta La respuesta es un objeto con 2 atributos :


● codigo​: Código de proceso nos indica si el proceso se realizó con éxito o no.
● informacion​: Si la acción a ejecutar requiere retornar información entonces el sistema
retornará en este atributo la información.

Tabla de códigos e información de respuesta

Código Información Descripción

0000 lista json de objetos de cliente Éxito , la acción se procesó


correctamente.

101721 Sin información No se encontró información.


Ejemplo de llamada: $options = array(
"location" => "http://sgcmovil.com/ws/1094AEV2/v2/soap.php",
"uri" => '',
"trace" => 0
);

$user_auth = array(
"user_name" => "aplicaciones_externas",
"password" => MD5("aplicaciones_externas"),
"version" => '.01'
);

$clientsoap = new SoapClient(NULL, $options);


$respuestalogin = $clientsoap->login($user_auth,"pegasus");
$sessionId = $respuestalogin->id;

//Crear el parámetro paquete


$busqueda->folioPosicion = 457; (Obligatorio)
$busqueda->cantidadElementos = 1; (La cantidad máxima son 200)
$paquete_json = json_encode( $busqueda );

$respuesta = $client->procesarPeticion(
$sessionId,
"Clientes",
"obtenerListaPorFolio",
$paquete_json
);

if( $respuesta->codigo = ‘0000’ )


{
echo “Política se obtuvo con éxito ”;
$lista_clientes = json_decode( $respuesta->informacion );}
else
{echo “Error , código : ”.$respuesta->codigo;}

Ejemplo de respuesta: ● codigo​: ​‘0000’


● informacion​:
‘​[{"numero_cliente":"145","identificador_externo":"120045","nombre":"P\u00fablico en
general","rfc":"XAXX010101000","calle":"Paseo del
Norte","no_exterior":"5600","no_interior":"","colonia":"Fraccionamiento Guadalajara
Technology Park","localidad":"Zapopan","referencia":"Fraccionamiento Guadalajara
Technology
Park","ciudad":"Zapopan","estado":"Jalisco","codigo_postal":"M\u00e9xico","pais":"45
010","telefono1":"Industrial","telefono2":"","activo":true,"email":"cliente@corporativosa
de.com.mx","saldo":0,"politica_venta_id":""},{"numero_cliente":"146","identificador_ext
erno":"120089","nombre":"P\u00fablico en general
2","rfc":"XAXX010101001","calle":"Paseo del
Norte","no_exterior":"5610","no_interior":"","colonia":"Fraccionamiento Guadalajara
Technology Park","localidad":"Zapopan","referencia":"Fraccionamiento Guadalajara
Technology
Park","ciudad":"Zapopan","estado":"Jalisco","codigo_postal":"M\u00e9xico","pais":"45
010","telefono1":"Industrial","telefono2":"","activo":true,"email":"cliente2@corporativos
ade.com.mx","saldo":0,"politica_venta_id":""}]​’

Para poder obtener la lista de clientes, se tiene que decodificar el string JSON,

if( $respuesta->codigo = ‘0000’ )


{
echo “Cleintes se obtuvo con éxito ”;
$lista_clientes = json_decode( $respuesta->informacion );}
else
{echo “Error , código : ”.$respuesta->codigo;}

También podría gustarte