FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Facturacion Electronica Peru, Metodo sendBill
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Facturacion Electronica Peru, Metodo sendBill
Posted: Thu Sep 11, 2014 03:03 AM
Saludos

Tengo un problema para comunicarme con este servicio que brinda la SUNAT aqui en Peru, con la inestimable ayuda de nuestro amigo Benjamin, se armo la consulta XML para el webService, esta incluye un metodo sendBill que debe enviar 2 datos, uno un archivo ZIP con un documento XML dentro y el otro, que no tengo idea de como hacerlo es "se debe consignar el contenido del archivo ZIP en un arreglo de Bytes", aqui tengo un ejemplo de como lo hacen en VB :

/*
Dim billService As New Sunat.billServiceClient
billService.sendBill(fileName, contentFile)
billService.sendSummary(fileName, contentFile)
billService.getStatus(ticket)

billService.sendBill('20100066603-01-F001-1.zip', File.ReadAllBytes('/path/to/file/20100066603-01-F001-1.zip'))
*/

Yo lo pongo en FWH asi :

http:Open( "POST", "https://www.sunat.gob.pe/ol-ti-itcpgem-sqa/billService", .F. )
http:SetRequestHeader( "Content-Type" , "text/xml;charset=ISO-8859-1" )
http:SetRequestHeader( "SOAPAction" , "sendBill(cFileZip,...............)" )

Ese metodo sendBill que invoco envia 2 parametros, el ZIP y el arreglo de bytes que no tengo idea de que funcion FWH o xHarbour utilizar ...

Gracias ...
Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Jul 26, 2016 05:22 AM

Hola Enrique

Estoy en el mismo dilema, no obstante hice algunos avances, quisiera saber si lo pudiste resolver, o alguien pudo avanzar al respecto...

Antonio, tal vez exista mas informacion?

no quiero morir en el intento.

Gracias

Luis Ponce
Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Jul 26, 2016 03:39 PM
Hola enrique
buenos dias


te anexo la llamada de la dll que convierte el zip a arreglo de bytes

Code (fw): Select all Collapse
#include "FiveWin.ch"


function Main()

   local oEleben, o

   TRY
      oEleben := CreateObject( "Classlibrary2.class1" )
     
     
     MSGALERT( "entro ")
    
   CATCH
      MSGALERT( "Na nai")
      
   END
   
   o:=oeleben:StreamFile("abrir.zip")   // lo convierte a arreglo de bytes
  
  
   
 Return nil


la dll la puedes bajar en
www.eleben.com.mx/cl.zip
la registras y la puedes usar

saludos
Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Jul 26, 2016 08:44 PM

Saludos Luis

Si lo resolvi, hay que mandar el archivo adjunto, convertido a base64 como indica el manual de la Sunat

http:SetRequestHeader( "SOAPAction" , "sendBill(cFileZip,xfile)" )

xFile es el ZIP convertido, y despu茅s recibes la respuesta de SUNAT

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Wed Jul 27, 2016 06:04 AM
Gracias Benjamin
Intente registrar la libreria que me pasaste:

regsvr32 ClassLibrary2.dll

Sin exito me da el siguiente mensaje: "Se cargo el modulo ClassLibrary2.dll, pero no se encontro el punto de entrada DllRegistrerServer Asegurese que ClassLibrary2.dll es un archivo DLL u OCX valido e intentelo de nuevo"

He buscado en internet, y es posible que la .dll este corrupta o sea de 64bits cuando yo tengo W7 de 32 o viceversa, por lo tanto no he podido ejecutar el ejemplo que me alcanzaste amablemente.

Enrique muchas gracias por tu respuesta;
Lo estuve trabajando con esta instruccion, que proviene del VB:

Code (fw): Select all Collapse
ohttp:SetRequestHeader( "SOAPAction" , "sendBill(cFileZip,File.ReadAllBytes(cFileZip))" )

y como retorno obtenia lo siguiente:

Code (fw): Select all Collapse
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>[b]0156[/b]</faultcode><faultstring>-</faultstring></S:Fault></S:Body></S:Envelope>

Donde el codigo 0156: indica que el archivo zip es corrupto (segun el Anexo 2 de la lista de errores)

Desde luego me aclaras el panorama, para convertir a base64 encontre una funcion HB_Base64Encode(), al parecer mi xHarbour 1.1.0 no la tiene, pero encontr茅 un alcance que public贸 JPonce (Auteur Badara Thiam) en este mismo foro:

viewtopic.php?f=6&t=25690&p=140504&hilit=base64&sid=3913569c54c77a1c98656e0c0a746f99#p140504

Excelente alcance, donde comparte unas funciones, entre ellas StrToBase64() la cual convierte string a base64, entonces hago lo siguiente:

Code (fw): Select all Collapse
cZip:=MemoRead(cFileZip) 聽// leo el contenido del zip
xFileZip:=StrToBase64(cZip) // lo convierto a base64

hago la magia

Code (fw): Select all Collapse
ohttp:SetRequestHeader( "SOAPAction" , "sendBill(cFileZip,xFileZip)" )


y me da el mismo resultado el codigo 0156, me lleva a pensar que el problema esta en la construccion del zip, aun cuando var铆o ese xml que esta dentro del zip, o adiciono otro archivo al zip.. siempre me da el mismo error :::

Existe algun ejemplo de como hacer esto??
Gracias por el interes prestado
Luis Ponce
Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Wed Jul 27, 2016 02:28 PM

Hola buenos dias

Registrala en modo de prueba

saludos

Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Thu Jul 28, 2016 06:02 AM

Hola Benjamin

Hice lo mismo en modo a prueba de fallos

regsvr32 ClassLibrary2.dll

con el mismo resultado

"Se cargo el modulo ClassLibrary2.dll, pero no se encontro el punto de entrada DllRegistrerServer Asegurese que ClassLibrary2.dll es un archivo DLL u OCX valido e intentelo de nuevo"

Luis Ponce
Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Thu Jul 28, 2016 03:40 PM

Hola
buenos dias

en esta liga esta con lo que la registro

www.eleben.com.mx\regis.zip

ejecutar

r classlibrary2

en modo de prueba
saludos

Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Thu Jul 28, 2016 06:39 PM
Buenos Dias Benjamin

baj茅 el archivo y ejecut茅 r

r ClassLibrary2

me di贸 esta respuesta en modo a prueba de fallos y normal

RegAsm : Warning RA0000 : El registro de un ensamblado sin signo puede provocar que dicho ensamblado interfiera con otras aplicaciones en el mismo equipo. El modificador /codebase solo se utiliza con signos. Proporcione al ensamblado un nombre seguro y vuelva a registrarlo.
Se registraron correctamente los tipos
El exportador de la biblioteca de tipos detecto una advertencia al procesar "ClassLibrary2.ServiceReference1.billServiceClient, ClassLibrary2". Advertencia: El exportador de la biblioteca de tipos detecto un tipo que deriva de una clase generica y que no esta marcado como [ClassInterface(ClassInterfaceType.None)]. Las interfaces de clase no se pueden exponer para estos tipos. Marque el tipo como [ClassInterface(ClassInterfaceType.None)] y exponer la interfaz cmo la predeterminada para COM con el atributo CodDefaultInterface.
El exportador de la biblioteca de tipos detecto una advertencia al procesar "ClassLibrary2.ServiceReference2.Service1SoapClient, ClassLibrary2". Advertencia: El exportador de la biblioteca de tipos detecto un tipo que deriva de una clase generica y que no esta marcado como [ClassInterface(ClassInterfaceType.None)]. Las interfaces de clase no se pueden exponer para estos tipos. Marque el tipo como [ClassInterface(ClassInterfaceType.None)] y exponer la interfaz como la predeterminada para COM con el atributo CodDefaultInterface.
La Exportacion del ensamblado a "C:\REGIS\ClassLibrary2.tbl" y el registro de la biblioteca de tipos se ralizaron correctamente
Presione una tecla para continuar........

Luego ejecuto el ejemplo que me pasaste:

Code (fw): Select all Collapse
#include "FiveWin.ch"


function Main()

聽 聽local oEleben, o

聽 聽TRY
聽 聽 聽 oEleben := CreateObject( "Classlibrary2.class1" )
聽 聽 聽
聽 聽 聽
聽 聽 聽MSGALERT( "entro ")
聽 聽 
聽 聽CATCH
聽 聽 聽 MSGALERT( "Na nai")
聽 聽 聽 
聽 聽END
聽 聽
聽 聽o:=oeleben:StreamFile("abrir.zip") 聽 // lo convierte a arreglo de bytes
聽 
聽 
聽 聽
聽Return nil


y me da el mensaje "Na nai"


con este mensaje

Application
===========
Path and name: C:\FWVENTAS\FW-VT2.exe (32 bits)
Size: 5,371,904 bytes
Time from start: 0 hours 0 mins 15 secs
Error occurred at: 28/07/2016, 13:42:50
Error description: Error BASE/1004 Class: 'NIL' has no exported method: STREAMFILE
Args:
[ 1] = U
[ 2] = C abrir.ZIP

Stack Calls
===========
Called from: => STREAMFILE(0)
Called from: vt20199.prg => FILE2AB(18626)
Called from: fw-vt2.prg => (b)BUILDMENU(1050)
Called from: MENU.PRG => TMENU:COMMAND(0)
Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
Called from: MDIFRAME.PRG => TMDIFRAME:COMMAND(0)
Called from: => TMDIFRAME:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
Called from: fw-vt2.prg => MAIN(661)

Agradezco tu respuesta
Luis Ponce
Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Thu Jul 28, 2016 06:45 PM

Hola luis

con eso se instalo la dll

a hora prueba el ejemplo

saludos

Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Sun Jul 31, 2016 11:50 PM

Hola Benjiben143

Hice lo que me dijiste y..

Dio lo mismo

Gracias

Luis Ponce
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Mon Aug 01, 2016 04:34 AM

Luis Yo lo leo invocando a esta function, y ya lo regresa convertido a base64

cNewArc:=xlee(cAcrZip)

//----------------------------------- Funcion para Leer ZIP ------------------------------------//
function xlee(hsource)

local hTarget
local cBuffer := Space(4000)
local nBytes, nFile := 0, nTotal := 0
local nTotSize := 0
local nBufsize:=4000
local xfile:=""
hSource = FOpen( hsource)
while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0
xfile:=xfile+left(cbuffer,nBytes)
end
FClose( hSource )
FClose( hTarget )
xfile:=StrToBase64(xfile)
return xfile

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Aug 02, 2016 04:31 AM
Hola Enrrique

Al parecer habia resuelto el envio mediante SendBill, digo al parecer porque Sunat me reporta imagino el CDR en produccion, este viene de esta forma:

Code (fw): Select all Collapse
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:sendBillResponse xmlns:ns2="http://service.sunat.gob.pe"><applicationResponse>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</applicationResponse></ns2:sendBillResponse></S:Body></S:Envelope>


el envio lo hago a:

https://www.sunat.gob.pe/ol-ti-itcpgem-beta/billService

En teoria parece que lo consegu铆, pero como traduzco esto a "legible" ??

Para hacerlo us茅 unas funciones de * Auteur Badara Thiam, publicadas en el Forum, StrToBase64(), y sucedio la magia, pero me retorna algo parecido que he intentado traducir con la funcion Base64ToStr() de la misma fuente, y no obtengo algo legible.

Probe hacer el envio con xLee(), que amablemente compartiste.. con similar resultado:

Code (fw): Select all Collapse
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:sendBillResponse xmlns:ns2="http://service.sunat.gob.pe"><applicationResponse>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</applicationResponse></ns2:sendBillResponse></S:Body></S:Envelope>


hay una diferencia peque帽a, que no he podido determinar....

Como traduces la respuesta de Sunat contenida en el TAG "applicationResponse" ???

Gracias
Luis Ponce
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Aug 02, 2016 04:59 AM

Luis, lo que recibes es un archivo ZIP en Base64, hay que hacer la operaci贸n inversa y despu茅s descomprimirlo para leer el contenido.

     hFile := FCreate( cResSun, FC_NORMAL )
     FWrite( hFile, Base64ToStr( cTxtSun64 ) )
     FClose( hFile )
Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Facturacion Electronica Peru, Metodo sendBill
Posted: Tue Aug 02, 2016 06:25 AM

Enrrique

Asi es, lo logico es que deb铆a hacer a la inversa, y lo intent茅 con:

Base64ToStr(applicationResponse)

applicationResponse=al contenido del TAG

Probare con el codigo que compartiste

cResSun = archivo resultante
cTxtSun64 = es el contenido de applicationResponse?

Gracias

Luis Ponce