@@ -21,6 +21,7 @@ class Api
2121{
2222 private ?ApiFactory $ factory = null ;
2323 private ?SignedXml $ signer = null ;
24+ private ?string $ lastXml = null ;
2425
2526 private array $ credentials = [];
2627 private array $ defaaultEndpoints = [
@@ -101,6 +102,16 @@ public function setCertificate(string $certificate): Api
101102 return $ this ;
102103 }
103104
105+ /**
106+ * Get Last XML Signed.
107+ *
108+ * @return string
109+ */
110+ public function getLastXml (): ?string
111+ {
112+ return $ this ->lastXml ;
113+ }
114+
104115 /**
105116 * Envia comprobante.
106117 *
@@ -113,11 +124,25 @@ public function send(DocumentInterface $document): ?BaseResult
113124 {
114125 $ buildResolver = new XmlBuilderResolver ($ this ->options );
115126 $ builder = $ buildResolver ->find (get_class ($ document ));
116- $ sender = $ this ->createSender ();
117127
118128 $ xml = $ builder ->build ($ document );
119- $ xmlSigned = $ this ->signer ->signXml ($ xml );
120- return $ sender ->send ($ document ->getName (), $ xmlSigned );
129+ $ this ->lastXml = $ this ->signer ->signXml ($ xml );
130+ return $ this ->sendXml ($ document ->getName (), $ this ->lastXml );
131+ }
132+
133+ /**
134+ * Enviar xml firmado.
135+ *
136+ * @param string $name
137+ * @param string $content
138+ * @return BaseResult|null
139+ * @throws ApiException
140+ */
141+ public function sendXml (string $ name , string $ content ): ?BaseResult
142+ {
143+ $ sender = $ this ->createSender ();
144+
145+ return $ sender ->send ($ name , $ content );
121146 }
122147
123148 /**
0 commit comments