@@ -44,10 +44,17 @@ namespace OpenAC.Net.NFSe.Providers;
4444
4545internal sealed class SmarAPD204ServiceClient : NFSeSoapServiceClient , IServiceClient
4646{
47+ #region Fields
48+
49+ private int _subVersao ;
50+
51+ #endregion
52+
4753 #region Constructors
4854
4955 public SmarAPD204ServiceClient ( ProviderSmarAPD204 provider , TipoUrl tipoUrl , X509Certificate2 certificado ) : base ( provider , tipoUrl , certificado , SoapVersion . Soap11 )
5056 {
57+ this . _subVersao = provider . SubVersao ;
5158 }
5259
5360 #endregion Constructors
@@ -57,25 +64,60 @@ public SmarAPD204ServiceClient(ProviderSmarAPD204 provider, TipoUrl tipoUrl, X50
5764 public string Enviar ( string cabec , string msg )
5865 {
5966 var message = new StringBuilder ( ) ;
60- message . Append ( "<e:recepcionarLoteRps>" ) ;
61- message . Append ( "<xml>" ) ;
62- message . AppendCData ( msg ) ;
63- message . Append ( "</xml>" ) ;
64- message . Append ( "</e:recepcionarLoteRps>" ) ;
67+ string tagResponse ;
68+ if ( this . _subVersao == 1 )
69+ {
70+ tagResponse = "recepcionarLoteRpsResponse" ;
71+ message . Append ( "<nfse:recepcionarLoteRps>" ) ;
72+ message . Append ( "<xml>" ) ;
73+ message . AppendCData ( msg ) ;
74+ message . Append ( "</xml>" ) ;
75+ message . Append ( "</nfse:recepcionarLoteRps>" ) ;
76+ }
77+ else
78+ {
79+ tagResponse = "RecepcionarLoteRpsResponse" ;
80+ message . Append ( "<nfse:RecepcionarLoteRpsRequest>" ) ;
81+ message . Append ( "<nfseCabecMsg>" ) ;
82+ message . AppendCData ( cabec ) ;
83+ message . Append ( "</nfseCabecMsg>" ) ;
84+ message . Append ( "<nfseDadosMsg>" ) ;
85+ message . AppendCData ( msg ) ;
86+ message . Append ( "</nfseDadosMsg>" ) ;
87+ message . Append ( "</nfse:RecepcionarLoteRpsRequest>" ) ;
88+ }
6589
66- return Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRps" , message . ToString ( ) , "recepcionarLoteRpsResponse" ) ;
90+ return Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRps" , message . ToString ( ) , tagResponse ) ;
6791 }
6892
6993 public string EnviarSincrono ( string cabec , string msg )
7094 {
7195 var message = new StringBuilder ( ) ;
72- message . Append ( "<e:recepcionarLoteRpsSincrono>" ) ;
73- message . Append ( "<xml>" ) ;
74- message . AppendCData ( msg ) ;
75- message . Append ( "</xml>" ) ;
76- message . Append ( "</e:recepcionarLoteRpsSincrono>" ) ;
96+ string tagResponse ;
97+ if ( this . _subVersao == 1 )
98+ {
99+ tagResponse = "recepcionarLoteRpsSincronoResponse" ;
100+ message . Append ( "<nfse:recepcionarLoteRpsSincrono>" ) ;
101+ message . Append ( "<xml>" ) ;
102+ message . AppendCData ( msg ) ;
103+ message . Append ( "</xml>" ) ;
104+ message . Append ( "</nfse:recepcionarLoteRpsSincrono>" ) ;
105+ }
106+ else
107+ {
108+ tagResponse = "RecepcionarLoteRpsSincronoResponse" ;
109+ message . Append ( "<nfse:RecepcionarLoteRpsSincronoRequest>" ) ;
110+ message . Append ( "<nfseCabecMsg>" ) ;
111+ message . AppendCData ( cabec ) ;
112+ message . Append ( "</nfseCabecMsg>" ) ;
113+ message . Append ( "<nfseDadosMsg>" ) ;
114+ message . AppendCData ( msg ) ;
115+ message . Append ( "</nfseDadosMsg>" ) ;
116+ message . Append ( "</nfse:RecepcionarLoteRpsSincronoRequest>" ) ;
117+ }
77118
78- return Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono" , message . ToString ( ) , "recepcionarLoteRpsSincronoResponse" ) ;
119+
120+ return Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono" , message . ToString ( ) , tagResponse ) ;
79121 }
80122
81123 public string ConsultarSituacao ( string cabec , string msg )
@@ -86,13 +128,30 @@ public string ConsultarSituacao(string cabec, string msg)
86128 public string ConsultarLoteRps ( string cabec , string msg )
87129 {
88130 var message = new StringBuilder ( ) ;
89- message . Append ( "<e:consultarLoteRps>" ) ;
90- message . Append ( "<xml>" ) ;
91- message . AppendCData ( msg ) ;
92- message . Append ( "</xml>" ) ;
93- message . Append ( "</e:consultarLoteRps>" ) ;
131+ string tagResponse ;
132+ if ( this . _subVersao == 1 )
133+ {
134+ tagResponse = "consultarLoteRpsResponse" ;
135+ message . Append ( "<nfse:consultarLoteRps>" ) ;
136+ message . Append ( "<xml>" ) ;
137+ message . AppendCData ( msg ) ;
138+ message . Append ( "</xml>" ) ;
139+ message . Append ( "</nfse:consultarLoteRps>" ) ;
140+ }
141+ else
142+ {
143+ tagResponse = "ConsultarLoteRpsResponse" ;
144+ message . Append ( "<nfse:ConsultarLoteRpsRequest>" ) ;
145+ message . Append ( "<nfseCabecMsg>" ) ;
146+ message . AppendCData ( cabec ) ;
147+ message . Append ( "</nfseCabecMsg>" ) ;
148+ message . Append ( "<nfseDadosMsg>" ) ;
149+ message . AppendCData ( msg ) ;
150+ message . Append ( "</nfseDadosMsg>" ) ;
151+ message . Append ( "</nfse:ConsultarLoteRpsRequest>" ) ;
152+ }
94153
95- return Execute ( "http://nfse.abrasf.org.br/ConsultarLoteRps" , message . ToString ( ) , "consultarLoteRpsResponse" ) ;
154+ return Execute ( "http://nfse.abrasf.org.br/ConsultarLoteRps" , message . ToString ( ) , tagResponse ) ;
96155 }
97156
98157 public string ConsultarSequencialRps ( string cabec , string msg )
@@ -103,37 +162,88 @@ public string ConsultarSequencialRps(string cabec, string msg)
103162 public string ConsultarNFSeRps ( string cabec , string msg )
104163 {
105164 var message = new StringBuilder ( ) ;
106- message . Append ( "<e:consultarNfsePorRps>" ) ;
107- message . Append ( "<xml>" ) ;
108- message . AppendCData ( msg ) ;
109- message . Append ( "</xml>" ) ;
110- message . Append ( "</e:consultarNfsePorRps>" ) ;
165+ string tagResponse ;
166+ if ( this . _subVersao == 1 )
167+ {
168+ tagResponse = "consultarNfsePorRpsResponse" ;
169+ message . Append ( "<nfse:consultarNfsePorRps>" ) ;
170+ message . Append ( "<xml>" ) ;
171+ message . AppendCData ( msg ) ;
172+ message . Append ( "</xml>" ) ;
173+ message . Append ( "</nfse:consultarNfsePorRps>" ) ;
174+ }
175+ else
176+ {
177+ tagResponse = "ConsultarNfsePorRpsResponse" ;
178+ message . Append ( "<nfse:ConsultarNfsePorRpsRequest>" ) ;
179+ message . Append ( "<nfseCabecMsg>" ) ;
180+ message . AppendCData ( cabec ) ;
181+ message . Append ( "</nfseCabecMsg>" ) ;
182+ message . Append ( "<nfseDadosMsg>" ) ;
183+ message . AppendCData ( msg ) ;
184+ message . Append ( "</nfseDadosMsg>" ) ;
185+ message . Append ( "</nfse:ConsultarNfsePorRpsRequest>" ) ;
186+ }
111187
112- return Execute ( "http://nfse.abrasf.org.br/ConsultarNfsePorRps" , message . ToString ( ) , "consultarNfsePorRpsResponse" ) ;
188+ return Execute ( "http://nfse.abrasf.org.br/ConsultarNfsePorRps" , message . ToString ( ) , tagResponse ) ;
113189 }
114190
115191 public string ConsultarNFSe ( string cabec , string msg )
116192 {
117193 var message = new StringBuilder ( ) ;
118- message . Append ( "<e:consultarNfseServicoPrestado>" ) ;
119- message . Append ( "<xml>" ) ;
120- message . AppendCData ( msg ) ;
121- message . Append ( "</xml>" ) ;
122- message . Append ( "</e:consultarNfseServicoPrestado>" ) ;
194+ string tagResponse ;
195+ if ( this . _subVersao == 1 )
196+ {
197+ tagResponse = "consultarNfsePorRpsResponse" ;
198+ message . Append ( "<nfse:consultarNfseServicoPrestado>" ) ;
199+ message . Append ( "<xml>" ) ;
200+ message . AppendCData ( msg ) ;
201+ message . Append ( "</xml>" ) ;
202+ message . Append ( "</nfse:consultarNfseServicoPrestado>" ) ;
203+ }
204+ else
205+ {
206+ tagResponse = "ConsultarNfsePorRpsResponse" ;
207+ message . Append ( "<nfse:ConsultarNfseServicoPrestadoRequest>" ) ;
208+ message . Append ( "<nfseCabecMsg>" ) ;
209+ message . AppendCData ( cabec ) ;
210+ message . Append ( "</nfseCabecMsg>" ) ;
211+ message . Append ( "<nfseDadosMsg>" ) ;
212+ message . AppendCData ( msg ) ;
213+ message . Append ( "</nfseDadosMsg>" ) ;
214+ message . Append ( "</nfse:ConsultarNfseServicoPrestadoRequest>" ) ;
215+ }
123216
124- return Execute ( "http://nfse.abrasf.org.br/ConsultarNfseServicoPrestado" , message . ToString ( ) , "consultarNfseServicoPrestadoResponse" ) ;
217+ return Execute ( "http://nfse.abrasf.org.br/ConsultarNfseServicoPrestado" , message . ToString ( ) , tagResponse ) ;
125218 }
126219
127220 public string CancelarNFSe ( string cabec , string msg )
128221 {
129222 var message = new StringBuilder ( ) ;
130- message . Append ( "<e:cancelarNfse>" ) ;
131- message . Append ( "<xml>" ) ;
132- message . AppendCData ( msg ) ;
133- message . Append ( "</xml>" ) ;
134- message . Append ( "</e:cancelarNfse>" ) ;
223+ string tagResponse ;
224+ if ( this . _subVersao == 1 )
225+ {
226+ tagResponse = "cancelarNfseResponse" ;
227+ message . Append ( "<nfse:cancelarNfse>" ) ;
228+ message . Append ( "<xml>" ) ;
229+ message . AppendCData ( msg ) ;
230+ message . Append ( "</xml>" ) ;
231+ message . Append ( "</nfse:cancelarNfse>" ) ;
232+ }
233+ else
234+ {
235+ tagResponse = "CancelarNfseResponse" ;
236+ message . Append ( "<nfse:CancelarNfseRequest>" ) ;
237+ message . Append ( "<nfseCabecMsg>" ) ;
238+ message . AppendCData ( cabec ) ;
239+ message . Append ( "</nfseCabecMsg>" ) ;
240+ message . Append ( "<nfseDadosMsg>" ) ;
241+ message . AppendCData ( msg ) ;
242+ message . Append ( "</nfseDadosMsg>" ) ;
243+ message . Append ( "</nfse:CancelarNfseRequest>" ) ;
244+ }
135245
136- return Execute ( "http://nfse.abrasf.org.br/CancelarNfse" , message . ToString ( ) , "cancelarNfseResponse" ) ;
246+ return Execute ( "http://nfse.abrasf.org.br/CancelarNfse" , message . ToString ( ) , tagResponse ) ;
137247 }
138248
139249 public string CancelarNFSeLote ( string cabec , string msg )
@@ -144,18 +254,35 @@ public string CancelarNFSeLote(string cabec, string msg)
144254 public string SubstituirNFSe ( string cabec , string msg )
145255 {
146256 var message = new StringBuilder ( ) ;
147- message . Append ( "<e:substituirNfse>" ) ;
148- message . Append ( "<xml>" ) ;
149- message . AppendCData ( msg ) ;
150- message . Append ( "</xml>" ) ;
151- message . Append ( "</e:substituirNfse>" ) ;
257+ string tagResponse ;
258+ if ( this . _subVersao == 1 )
259+ {
260+ tagResponse = "substituirNfseResponse" ;
261+ message . Append ( "<nfse:substituirNfse>" ) ;
262+ message . Append ( "<xml>" ) ;
263+ message . AppendCData ( msg ) ;
264+ message . Append ( "</xml>" ) ;
265+ message . Append ( "</nfse:substituirNfse>" ) ;
266+ }
267+ else
268+ {
269+ tagResponse = "SubstituirNfseResponse" ;
270+ message . Append ( "<nfse:SubstituirNfseRequest>" ) ;
271+ message . Append ( "<nfseCabecMsg>" ) ;
272+ message . AppendCData ( cabec ) ;
273+ message . Append ( "</nfseCabecMsg>" ) ;
274+ message . Append ( "<nfseDadosMsg>" ) ;
275+ message . AppendCData ( msg ) ;
276+ message . Append ( "</nfseDadosMsg>" ) ;
277+ message . Append ( "</nfse:SubstituirNfseRequest>" ) ;
278+ }
152279
153- return Execute ( "http://nfse.abrasf.org.br/SubstituirNfse" , message . ToString ( ) , "substituirNfseResponse" ) ;
280+ return Execute ( "http://nfse.abrasf.org.br/SubstituirNfse" , message . ToString ( ) , tagResponse ) ;
154281 }
155282
156283 private string Execute ( string soapAction , string message , string responseTag )
157284 {
158- return Execute ( soapAction , message , "" , [ responseTag ] , [ "xmlns:e =\" http://nfse.abrasf.org.br\" " ] ) ;
285+ return Execute ( soapAction , message , "" , [ responseTag ] , [ "xmlns:nfse =\" http://nfse.abrasf.org.br\" " ] ) ;
159286 }
160287
161288 protected override bool ValidarCertificadoServidor ( )
@@ -172,7 +299,11 @@ protected override string TratarRetorno(XElement xmlDocument, string[] responseT
172299 throw new OpenDFeCommunicationException ( exMessage ) ;
173300 }
174301
175- return xmlDocument . ElementAnyNs ( responseTag [ 0 ] ) . ElementAnyNs ( "return" ) . Value ;
302+ if ( this . _subVersao == 1 )
303+ return xmlDocument . ElementAnyNs ( responseTag [ 0 ] ) . ElementAnyNs ( "return" ) . Value ;
304+ else
305+
306+ return xmlDocument . ElementAnyNs ( responseTag [ 0 ] ) . ElementAnyNs ( "outputXML" ) . Value ;
176307 }
177308
178309 #endregion Methods
0 commit comments