LibreDTE

SiiTokenManagerWorker extends AbstractWorker
in package
implements SiiTokenManagerWorkerInterface

Clase para gestionar las solicitudes de token para autenticación al SII.

Table of Contents

Interfaces

SiiTokenManagerWorkerInterface
Interfaz del worker que administra el token de la sesión mediante API en SII.

Constants

TOKEN_KEY  = 'libredte_lib_sii_auth_token_%s'
Formato de la clave en caché para guardar el token asociado a un certificado.
TOKEN_TTL  = 60
Tiempo en segundos que el token es válido desde que se solicitó.

Properties

$cache  : CacheInterface
Instancia con la implementación de la caché que se utilizará para el almacenamiento de los tokens.
$lazyWorker  : SiiLazyWorkerInterface
Lazy worker del SII.
$signatureComponent  : SignatureComponentInterface
Componente para firma electrónica.
$wsdlConsumer  : SiiWsdlConsumerWorkerInterface
Cliente de la API SOAP del SII.
$xmlComponent  : XmlComponentInterface
Componente para manejo de documentos XML.

Methods

__construct()  : mixed
Constructor del TokenManager para inyectar la implementación de caché y el cliente de los servicios web SOAP del SII para obtener un token.
getToken()  : string
Obtiene un token de autenticación asociado al certificado digital.
getCache()  : CacheInterface
Entrega una instancia con la implementación de una caché para ser utilizada en la biblioteca.
getSeedFromSii()  : int
Obtiene una semilla desde el SII para luego usarla en la obtención del token para la autenticación.
getTokenFromSii()  : string
Método para obtener el token de la sesión en el SII.

Constants

TOKEN_KEY

Formato de la clave en caché para guardar el token asociado a un certificado.

private string TOKEN_KEY = 'libredte_lib_sii_auth_token_%s'

Se utiliza un placeholder que se reemplazará con el ID del certificado.

TOKEN_TTL

Tiempo en segundos que el token es válido desde que se solicitó.

private int TOKEN_TTL = 60

Properties

$cache

Instancia con la implementación de la caché que se utilizará para el almacenamiento de los tokens.

private CacheInterface $cache

$signatureComponent

Componente para firma electrónica.

private SignatureComponentInterface $signatureComponent

$xmlComponent

Componente para manejo de documentos XML.

private XmlComponentInterface $xmlComponent

Methods

__construct()

Constructor del TokenManager para inyectar la implementación de caché y el cliente de los servicios web SOAP del SII para obtener un token.

public __construct(SiiLazyWorkerInterface $lazyWorker, SignatureComponentInterface $signatureComponent, XmlComponentInterface $xmlComponent, SiiWsdlConsumerWorkerInterface $wsdlConsumer[, CacheInterface|null $cache = null ]) : mixed
Parameters
$lazyWorker : SiiLazyWorkerInterface
$signatureComponent : SignatureComponentInterface
$xmlComponent : XmlComponentInterface
$wsdlConsumer : SiiWsdlConsumerWorkerInterface
$cache : CacheInterface|null = null

getToken()

Obtiene un token de autenticación asociado al certificado digital.

public getToken(CertificateInterface $certificate) : string
Parameters
$certificate : CertificateInterface

Certificado digital con el cual se desea obtener un token de autenticación en el SII.

Return values
string

El token asociado al certificado.

getCache()

Entrega una instancia con la implementación de una caché para ser utilizada en la biblioteca.

private getCache() : CacheInterface
Return values
CacheInterface

Implementación de caché PSR-16.

getSeedFromSii()

Obtiene una semilla desde el SII para luego usarla en la obtención del token para la autenticación.

private getSeedFromSii() : int

Este es el único servicio web que se puede llamar sin utilizar el certificado digital. Es de libre consumo y se usa para obtener la semilla necesaria para luego, usando el certificado, obtener un token válido para la sesión en el SII.

Nota: la semilla tiene una validez de 2 minutos.

WSDL producción: https://palena.sii.cl/DTEWS/CrSeed.jws?WSDL WSDL certificación: https://maullin.sii.cl/DTEWS/CrSeed.jws?WSDL

Tags
throws
SiiTokenManagerException

En caso de error.

Return values
int

La semilla si se logró obtener.

getTokenFromSii()

Método para obtener el token de la sesión en el SII.

private getTokenFromSii(CertificateInterface $certificate) : string

Primero se obtiene una semilla, luego se firma la semilla con el certificado digital y con esta semilla firmada se hace la solicitud del token al SII.

Referencia: http://www.sii.cl/factura_electronica/autenticacion.pdf

WSDL producción: https://palena.sii.cl/DTEWS/GetTokenFromSeed.jws?WSDL WSDL certificación: https://maullin.sii.cl/DTEWS/GetTokenFromSeed.jws?WSDL

Parameters
$certificate : CertificateInterface
Tags
throws
SiiTokenManagerException

En caso de error.

Return values
string

Token para autenticación en SII.


        
On this page

Search results