SiiDocumentSenderWorker
extends AbstractWorker
in package
implements
SiiDocumentSenderWorkerInterface
Clase para el envío de documentos al SII.
Table of Contents
Interfaces
- SiiDocumentSenderWorkerInterface
- Interfaz del worker que envía (sube) los documentos (XML) al SII.
Properties
- $lazyWorker : SiiLazyWorkerInterface
- $tokenManager : SiiTokenManagerWorkerInterface
- $xmlComponent : XmlComponentInterface
Methods
- __construct() : mixed
- Constructor del worker.
- sendXml() : int
- Realiza el envío de un XML al SII.
- createXmlFile() : array<string|int, mixed>
- Guarda el XML en un archivo temporal y, si es necesario, lo comprime.
- getXmlFilePath() : string
- Obtiene un nombre único para el archivo del XML que se desea crear.
- uploadXml() : XmlInterface
- Sube el archivo XML al SII y retorna la respuesta de este.
- validateUploadXmlResponse() : void
- Valida la respuesta recibida desde el SII al enviar un XML.
Properties
$lazyWorker
private
SiiLazyWorkerInterface
$lazyWorker
$tokenManager
private
SiiTokenManagerWorkerInterface
$tokenManager
$xmlComponent
private
XmlComponentInterface
$xmlComponent
Methods
__construct()
Constructor del worker.
public
__construct(SiiLazyWorkerInterface $lazyWorker, SiiTokenManagerWorkerInterface $tokenManager, XmlComponentInterface $xmlComponent) : mixed
Parameters
- $lazyWorker : SiiLazyWorkerInterface
- $tokenManager : SiiTokenManagerWorkerInterface
- $xmlComponent : XmlComponentInterface
sendXml()
Realiza el envío de un XML al SII.
public
sendXml(CertificateInterface $certificate, XmlInterface $doc, string $company[, bool $compress = false ][, int|null $retry = null ]) : int
Parameters
- $certificate : CertificateInterface
-
Certificado digital.
- $doc : XmlInterface
-
Documento XML que se desea enviar al SII.
- $company : string
-
RUT de la empresa emisora del XML.
- $compress : bool = false
-
Indica si se debe enviar comprimido el XML.
- $retry : int|null = null
-
Intentos que se realizarán como máximo al enviar.
Return values
int —Número de seguimiento (Track ID) del envío del XML al SII.
createXmlFile()
Guarda el XML en un archivo temporal y, si es necesario, lo comprime.
private
createXmlFile(string $xml, bool $compress) : array<string|int, mixed>
Parameters
- $xml : string
-
Documento XML que se guardará en el archivo..
- $compress : bool
-
Indica si se debe crear un archivo comprimido.
Return values
array<string|int, mixed> —Arreglo con la ruta al archivo creado y su mimetype.
getXmlFilePath()
Obtiene un nombre único para el archivo del XML que se desea crear.
private
getXmlFilePath(bool $compress) : string
Parameters
- $compress : bool
-
Indica si se debe crear un archivo comprimido.
Return values
string —Arreglo con la ruta al archivo.
uploadXml()
Sube el archivo XML al SII y retorna la respuesta de este.
private
uploadXml(CertificateInterface $certificate, array<string|int, mixed> $data, int $retry) : XmlInterface
Este método emula la subida mendiante los siguientes formularios:
- Producción: https://palena.sii.cl/cgi_dte/UPL/DTEauth?1
- Certificación: https://maullin.sii.cl/cgi_dte/UPL/DTEauth?1
Parameters
- $certificate : CertificateInterface
-
Certificado digital.
- $data : array<string|int, mixed>
-
Arreglo con los datos del formulario del SII, incluyendo el archivo XML que se subirá.
- $retry : int
Tags
Return values
XmlInterface —Respuesta del SII al enviar el XML.
validateUploadXmlResponse()
Valida la respuesta recibida desde el SII al enviar un XML.
private
validateUploadXmlResponse(CertificateInterface $certificate, array<string|int, mixed> $response) : void
Parameters
- $certificate : CertificateInterface
-
Certificado digital.
- $response : array<string|int, mixed>
-
Arreglo con los datos del XML de la respuesta.