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
$lazyWorker
Lazy worker del SII.
private
SiiLazyWorkerInterface
$lazyWorker
$signatureComponent
Componente para firma electrónica.
private
SignatureComponentInterface
$signatureComponent
$wsdlConsumer
Cliente de la API SOAP del SII.
private
SiiWsdlConsumerWorkerInterface
$wsdlConsumer
$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
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
Return values
string —Token para autenticación en SII.