En esta sección se muestran varios ejemplos de uso de las operaciones del Annual SDK usando los lenguajes C#,PHP, Delphi y JavaScript.

¿Desea ir al menu de Ejemplos? entonces pulse aquí

REQUERIMIENTOS

Importante para poder utilizar las operaciones del Annual SDK es tomar en cuenta la siguiente estrategia:

  1. La seguridad obliga a utilizar de entrada la operación SEG_LoginSaintEsta operación solicita dos parámetros:
    (a) Código de usuario (string) (b) Clave o Password. Es del tipo LoginModel:

    public sealed class LoginModel
    {
       public string UserLogin { get; set; }
       public string Password { get; set; }
       public int UserLang { get; set; }
       public bool RememberMe { get; set; }
       public string FBUserId { get; set; }
       public LoginModel() 
       {
           this.UserLogin = "";
           this.Password = "";
           this.FBUserId = "";
       }
    }
    

    El resultado es un string JSON que es deserializado en una estructura del tipo SaintResult.

    [Serializable]
    public sealed class SaintResult<T> where T : new()
    {
        public int Status;
        public string Message;
        public T Data;
        public SaintResult() 
    	{ 
    	   Status = 0; 
    	}
    }
    

    Veamos una pieza del código en C# para el consumo de SEG_LoginSaint.

     string _jsonResult = "";
     _jsonResult = m_SDKClient.SEG_LoginSaint(model.UserLogin,model.Password);
     _user=JsonConvert.DeserializeObject<SaintResult>UsuarioLoginModel>>(_jsonResult);Session.Add("_token",_user.Message);
    
  2. Vemos acá que se necesita una instancia de la clase SDKClient (nombrada aquí como m_SDKClient), clase que contiene las operaciones como métodos de la clase. La variable string _jsonResult contendrá el formato JSON de los resultados.
    Por ejemplo:
Observe cómo el atributo «Message» contiene una cadena numérica entera larga. Este valor será asignado al atributo _user.Message miembro de _user y luego a una variable global de sesión m_token. Esta operación es la única que posee esta propiedad especial. Cada una de las otras operaciones contendrá como parámetro de entrada el valor del token, de lo contrario arrojará un error en el campo Status negativo.

 

Desglose jerárquico de la variable string local _jsonResult.

Veamos una pieza del código en PHP para el consumo de SEG_LoginSaint.

/* SEG_LoginSaint */
/* 
*$sdk_url: consulta en las configuraciones del plugin en el dashboard, y guarda el url del sdk
*$sdk_user: consulta en las configuraciones del plugin en el dashboard, y guarda el codigo de usuario general del sdk.
*$sdk_user_password: consulta en las configuraciones del plugin en el dashboard, y guarda la clave del usuario general del sdk
*$client = new SoapClient( $sdk_url ) : se instancia el objeto de php que permite el consumo de servicios web SOAP, el parametro *acepta el url del sdk
*/ 
public function get_token() 
{
	try
    {
		$sdk_url = get_option( 'sc_settings' )[ 'sc_sdk_url' ];
		$sdk_user = get_option( 'sc_settings' )[ 'sc_sdk_user' ];
		$sdk_user_password = get_option( 'sc_settings' )[ 'sc_sdk_user_password' ];
		$client = new SoapClient( $sdk_url );
		$login = $client->SEG_LoginSaint( array( "idUser" => $sdk_user ,"password" => $sdk_user_password ) );
		$token = json_decode( $login->SEG_LoginSaintResult )->Message;
		$_SESSION[ 'user_token' ] = $token; 
		return $token;
	}
	catch( Exception $e ) 
	{
	 echo __( 'Error en el servicio:' , 'saintcommerce' ) . 
             $e->getMessage() . __( 'nro' , 'saintcommerce' ) . 
             $e->getCode() . __( 'linea' ,'saintcommerce' ) . $e->getLine();"\n";
	} 
}

Veamos ahora un ejemplo escrito en Delphi:

// ============================================================================================
unit cFrmMain;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
    // el proxy pas
  SaintAdminServer, SaintResult;

type
  TFrmMain = class(TForm)
    btnLogin: TButton;
    Label1: TLabel;
    lblUsuario: TLabel;
    tbxUser: TEdit;
    lblClave: TLabel;
    tbxClave: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure btnLoginClick(Sender: TObject);
  private
    { Private declarations }
    Server : ISDKAdmin;
  public
    { Public declarations }
  end;
var
  FrmMain: TFrmMain;

implementation

{$R *.dfm}
// ----------------------------------------------------------------------------
procedure TFrmMain.FormCreate(Sender: TObject);
begin
  // cargar el webservice
  self.Server := GetISDKAdmin();
end;
// ----------------------------------------------------------------------------
procedure TFrmMain.btnLoginClick(Sender: TObject);
var
  wsResult : string;
begin
  wsResult := '';
  if (tbxUser.Text <> '') and (tbxClave.Text <> '') then begin
    // invocar el metodo login
    wsResult := self.Server.SEG_LoginSaint(tbxUser.Text, tbxClave.Text);
    ShowMessage(wsResult);
  end else begin
    ShowMessage('complete usuario y clave');
  end;
end;

end.

Veamos ahora un ejemplo con JQuery (JavaScript):

var dataSoap =
    '<?xml version="1.0" encoding="utf-8"?>'+
    '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">'+
    '<soapenv:Header/>'+
    '<soapenv:Body>'+
        '<tem:SEG_LoginSaint>'+
        '<tem:idUser>001</tem:idUser>'+
        '<tem:password>12345</tem:password>'+
        '</tem:SEG_LoginSaint>'+
    '</soapenv:Body>'+
    '</soapenv:Envelope>';

$.ajax({
    url: 'http://ServerPrueba:9001/SaintAdminServer?wsdl',
    dataType: 'xml',
    type: "POST",
    contentType: "text/xml",
    data: dataSoap,
    headers: {
        SOAPAction: "http://tempuri.org/ISDKAdmin/SEG_LoginSaint",
        Operation: "SEG_LoginSaint"
    },
    success: function (SOAPResponse) {
        var result = $.parseJSON($(SOAPResponse.getElementsByTagName("SEG_LoginSaintResult")).text());
        console.log(result);
    }
});


MENU DE EJEMPLOS

Seleccione el tipo de operación de ejemplo de la lista a continuación: