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:
- La seguridad obliga a utilizar de entrada la operación SEG_LoginSaint. Esta 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);
- 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:
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: