1. Home
  2. Nuestras Librerias
  3. Como Autenticarse CFDI 3.3
  4. Obtener Token Mediante Usuario y Contraseña

Obtener Token Mediante Usuario y Contraseña

El servicio de Autenticación es utilizado principalmente para obtener el token el cual sera utilizado para poder timbrar nuestro CFDI (xml) ya emitido (sellado), para poder utilizar este servicio es necesario que cuente con un usuario y contraseña para posteriormente obtenga el token, usted puede utilizar los que estan en este ejemplo para el ambiente de Pruebas.

Para autenticarse a cualquiera de nuestros servicios es necesario contar con un token. Este token se puede obtener de dos maneras:

  • A través de la aplicación web Administracion SW SmarterWeb aquí una guía de como generarlo enlace.
  • A través de nuestros servicios REST de autenticación el cual se describe a continuación.

A continuación mostraremos como llevar acabo la autenticacion y generación de Token, por medio de nuestras librerias.

Url Pruebas para Autenticarse

http://services.test.sw.com.mx/security/authenticate


Ir al Repositorio de C# en GitHub

using SW.Services.Authentication;
using System;
 
namespace ExampleSDK
{
    class Program
    {
        static void Main()
        {
            try
            {
                //Ejemplo utilizando la librería sw-sdk ( https://www.nuget.org/packages/SW-sdk/ )
                //Para mayor referencia: https://github.com/lunasoft/sw-sdk-dotnet
                //Creamos una instancia de tipo Authentication
                //A esta le pasamos la Url, Usuario y Contraseña para obtener el token
                Authentication auth = new Authentication("http://services.test.sw.com.mx", "demo", "123456789");
                AuthResponse response = auth.GetToken();
            }
            catch (Exception e)
            {
 
            }
 
        }
    }
}


Ir al Repositorio de PHP en GitHub

<?php //Ejemplo de php utilizando la libreria sw-sdk-php ( https://packagist.org/packages/lunasoft/sw-sdk-php ) //Para mayor referencia: https://github.com/lunasoft/sw-sdk-php //requerimos el autoload generado por composer require_once "vendor/autoload.php"; //requerimos el servicio Authentication use SWServicesAuthenticationAuthenticationService as Authentication; //Generamos un array con las propiedades $params = array( "url"=>"http://services.test.sw.com.mx",
		"user"=>"demo",
		"password"=> "12345678A"
		);
	
	try{
		
		//Generamos un objeto "auth" con los parametros antes declarados
		$auth = Authentication::auth($params);
		
		//Ejecutamos el metodo Token
		$token = $auth::Token();
		
		//Incluimos el header content-type para mostrar la impresion del resultado, esto es meramente demostrativo
		header("Content-type: application/json");

		echo $token;

	}
	catch(Exception $e){
		header("Content-type: text/plain");
		echo "Caught exception: ",  $e->getMessage();
	}

?>


Ir al Repositorio de Java en GitHub

package Tests;

//Importar las librerias correspondientes
import Services.Authentication.SWAuthenticationService;

import Services.SWService;

import Utils.Responses.AuthResponse;

public class AuthTest {

	public static void main(){

		try{
			SWAuthenticationService auth;

			auth = new SWAuthenticationService("demo","123456789","http://services.test.sw.com.mx");

			IResponse response;

			response =  auth.Token();

			//Estatus de la petición, puede ser: "success", "fail", "error"
			System.out.println(response.Status);

			//Codigo HTTP de la respuesta
			System.out.println(response.HttpStatusCode);

			//El cuerpo de la respuesta
			//En este caso el token
			System.out.println(response.Data);
		}
		catch (Exception e){

			//En caso de obtener un estatus "fail", o "error", se generara una excepción
			System.out.println(e.getMessage());
		}
	}
}

  curl --request POST  --url http://services.test.sw.com.mx/security/authenticate 

  --header "cache-control: no-cache" 

  --header "Content-Length: 0" 

  --header "password: 123456789" 

  --header "postman-token: 7eb44938-46c9-0d8d-7e07-b47a914282b0" 

  --header "user: demo"


La informacion de como autenticarse para esta libreria la puedes encontrar en este Enlace


La informacion de como autenticarse para esta libreria la puedes encontrar en este Enlace


La informacion de como autenticarse para esta libreria la puedes encontrar en este Enlace

IMPORTANTE

Token infinito: Se obtiene a través de la aplicación web Administracion SW SmarterWeb en la cual podrás generarlo para después utilizarlo cuando consumas el servicio de timbrado. Cuando revoques o regeneres el token tendrás que actualizar el token en tu aplicación.

Token mediante usuario y contraseña: Para obtenerlo se tienen que utilizar los servicios REST de autenticación, enviando usuario y contraseña cada vez que se requiera el token para consumir el servicio de timbrado.

Por cuestiones de eficiencia y velocidad de tu aplicación o sistema, es preferible utilizar el token infinito en vez de generar el token mediante usuario y contraseña para cada factura (cfdi) que mandas a timbrar. Sin embargo, ambos métodos de generación de token son completamente válidos y dependerá de la situación de implementacion en particular que se tenga que resolver para la eleccion de uno u otro.

Siguientes Pasos: 

Updated on junio 15, 2017

Was this article helpful?

Related Articles