Ir al contenido



Foto

Enviar correo de gmail con libCurl


  • Por favor identifícate para responder
29 respuestas en este tema

#21 angelo2007

angelo2007

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 13 agosto 2011 - 07:39

hola

aca ya logre compilar tu demo

excelente. funciono muy bien.

bueno ahora 
en lo que tu codigo dice

          // Aqui deberiamos de generar una "frontera" que no este contenida dentro de archivo, pero por ahora la usamos fija
          Boundary:= '0FA22F597470466EBF9073DB93B26AB3';


¿que es eso de boundary.'

¿que significa?

¿como puedo usarlo o generar uno. ?

ando viendo si puedo agregar varios adjuntos.


gracias seoane.


  • 0

#22 seoane

seoane

    Advanced Member

  • Administrador
  • 1.243 mensajes
  • LocationEspaña

Escrito 13 agosto 2011 - 11:55

La "frontera" no es mas que un texto aleatorio que sirve para separar cada uno de las partes que componen el mensaje. La unica condicion que debe cumplir es que no puede aparecer dentro de ninguno de los archivos que queremos enviar. Por ese motivo debemos de revisar el archivo para ver si esa cadena esta contenida en el y si es asi usar otra. Para generarla puedes usar la funcion random, usar un texto fijo, la hora del sistema, etc cualquier cosa que se te ocurra
  • 0

#23 seoane

seoane

    Advanced Member

  • Administrador
  • 1.243 mensajes
  • LocationEspaña

Escrito 22 agosto 2011 - 03:19

Aquí hay un ejemplo con todo ya listo para usar:

Enviar captura de pantalla usando gmail: http://delphi.jmrds.com/?q=node/69


PD: Perdón por el spam  :D
  • 0

#24 Blan_Lle

Blan_Lle

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 14 mayo 2018 - 02:43

Hola compañeros, 

 

Me encuentro en este momento intentando acceder a un webservice para mandar una factura electronica (https://facturaelect...lectronica.wsdl).

 

Al principio quería conectar con un componente httprio pero no realiza bién la conexión al webservice. Al no funcionar hemos intentado realizarlo a partir del código que habéis publicado en http://www.delphienm...arter-y-curl/. 

 

He adaptado el código publicado para que llame a mi webservice y he modificado el xml para que construya el mensaje SOAP con los parametros que necesita el webservice a partir de las especificaciones que determina el servicio https://www.dian.gov...ansacciones.pdf

 

El caso es que al llamarlo, no devuelve ningún error pero al capturar el envío desde Microsoft Network Monitor no aparece ni la petición soap ni la respuesta. Es decir no llega a realizar el envío. Estoy teniendo bastantes problemas con este webservice y no tengo claro si es que estoy haciendo algo mal o hay algún dato mal del lado del servidor. cuando realizo la petición desde soapui me da respuesta o quizá se me esté escapando algún dato en el momento de hacer la petición.

No puedo publicar el código porque contiene datos sensibles del facturador.

 

Muchissimas gracias 


  • 0

#25 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.837 mensajes
  • LocationMéxico

Escrito 15 mayo 2018 - 02:49

Hola compañeros, 

 

Me encuentro en este momento intentando acceder a un webservice para mandar una factura electronica (https://facturaelect...lectronica.wsdl).

 

Al principio quería conectar con un componente httprio pero no realiza bién la conexión al webservice. Al no funcionar hemos intentado realizarlo a partir del código que habéis publicado en http://www.delphienm...arter-y-curl/. 

 

He adaptado el código publicado para que llame a mi webservice y he modificado el xml para que construya el mensaje SOAP con los parametros que necesita el webservice a partir de las especificaciones que determina el servicio https://www.dian.gov...ansacciones.pdf

 

El caso es que al llamarlo, no devuelve ningún error pero al capturar el envío desde Microsoft Network Monitor no aparece ni la petición soap ni la respuesta. Es decir no llega a realizar el envío. Estoy teniendo bastantes problemas con este webservice y no tengo claro si es que estoy haciendo algo mal o hay algún dato mal del lado del servidor. cuando realizo la petición desde soapui me da respuesta o quizá se me esté escapando algún dato en el momento de hacer la petición.

No puedo publicar el código porque contiene datos sensibles del facturador.

 

Muchissimas gracias 

 

Hola Bran_Lle, bienvenido a DelphiAccess

 

¿Y tu proveedor no tiene un ambiente de pruebas?

 

Es probable que sea un asunto con el SSL.

 

Saludos


  • 0

#26 Blan_Lle

Blan_Lle

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 16 mayo 2018 - 03:24

Hola Bran_Lle, bienvenido a DelphiAccess

 

¿Y tu proveedor no tiene un ambiente de pruebas?

 

Es probable que sea un asunto con el SSL.

 

Saludos

 

Hola egostar, 

 

Si, el proveedor está habilitado como facturador electrónico y los datos son correctos. El problema es que con vuestro código en este punto curlResult := curl_easy_perform(Curl); devuelve ok pero no hace nada. No crea el mensaje SOAP. 

La URL del endpoint no está definida como https, aunque si hago una petición desde SOAPUI sí que consigue respuesta del servidor. Puede ser que tuviera que definir algún parámetro extra en la llamada al webservice, pero en la definición del webservice no especifica cómo se tiene que realizar la llamada, tampoco en la documentación adjunta. Lo único que dicen es que se tienen que incluir las cabeceras de seguridad que ensamblo dentro del contenido del "stream" del mensaje soap, funciona desde SOAPUI. Los datos del mensaje no contienen ningún archivo adjunto ni ninguna cosa rara. Te copio un ejemplo de un request por si ves algo extraño. Estos request solo funcionan con los datos de usuario ;). Gracias! 

 

   <soapenv:Header/>
   <soapenv:Body>
      <rep:EnvioFacturaElectronicaPeticion>
         <rep:NIT>?</rep:NIT>
         <rep:InvoiceNumber>?</rep:InvoiceNumber>
         <rep:IssueDate>?</rep:IssueDate>
         <rep:Document>cid:1005622763451</rep:Document>
      </rep:EnvioFacturaElectronicaPeticion>
   </soapenv:Body>
</soapenv:Envelope>

  • 0

#27 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.837 mensajes
  • LocationMéxico

Escrito 16 mayo 2018 - 09:42

 

Hola egostar, 

 

Si, el proveedor está habilitado como facturador electrónico y los datos son correctos. El problema es que con vuestro código en este punto curlResult := curl_easy_perform(Curl); devuelve ok pero no hace nada. No crea el mensaje SOAP. 

La URL del endpoint no está definida como https, aunque si hago una petición desde SOAPUI sí que consigue respuesta del servidor. Puede ser que tuviera que definir algún parámetro extra en la llamada al webservice, pero en la definición del webservice no especifica cómo se tiene que realizar la llamada, tampoco en la documentación adjunta. Lo único que dicen es que se tienen que incluir las cabeceras de seguridad que ensamblo dentro del contenido del "stream" del mensaje soap, funciona desde SOAPUI. Los datos del mensaje no contienen ningún archivo adjunto ni ninguna cosa rara. Te copio un ejemplo de un request por si ves algo extraño. Estos request solo funcionan con los datos de usuario ;). Gracias! 

 

   <soapenv:Header/>
   <soapenv:Body>
      <rep:EnvioFacturaElectronicaPeticion>
         <rep:NIT>?</rep:NIT>
         <rep:InvoiceNumber>?</rep:InvoiceNumber>
         <rep:IssueDate>?</rep:IssueDate>
         <rep:Document>cid:1005622763451</rep:Document>
      </rep:EnvioFacturaElectronicaPeticion>
   </soapenv:Body>
</soapenv:Envelope>

 

 

Pues no, no se ve nada anormal en el xml, como te están pidiendo el documento, como base 64 ?

 

Saludos


  • 1

#28 Blan_Lle

Blan_Lle

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 18 mayo 2018 - 01:04

Pues no, no se ve nada anormal en el xml, como te están pidiendo el documento, como base 64 ?

 

Saludos

 

Correcto el documento xml tiene que ir comprimido y en base64. Pero el problema no es este, yo puedo mandar un documento vacío para realizar pruebas lo que me debería devolver el servidor un mensaje de error pero el problema es que no consigo realizar la conexión ni ninguna respuesta del servidor. Y con vuestro código no manda ningún mensaje soap devolviendo un ok en el envio. no se si me explico bién...


  • 0

#29 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.837 mensajes
  • LocationMéxico

Escrito 18 mayo 2018 - 05:16

Correcto el documento xml tiene que ir comprimido y en base64. Pero el problema no es este, yo puedo mandar un documento vacío para realizar pruebas lo que me debería devolver el servidor un mensaje de error pero el problema es que no consigo realizar la conexión ni ninguna respuesta del servidor. Y con vuestro código no manda ningún mensaje soap devolviendo un ok en el envio. no se si me explico bién...

 

Lamentablemente no hay la posibilidad de hacer una prueba para ayudarte, entré a la web de Facuracion Dian y no he visto el método que estas mencionando, pero he visto en los métodos existentes que están utilizando un firmado del body del XML, no se si por ahí van los tiros.

 

Saludos


  • 0

#30 Blan_Lle

Blan_Lle

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 23 mayo 2018 - 06:07

Lamentablemente no hay la posibilidad de hacer una prueba para ayudarte, entré a la web de Facuracion Dian y no he visto el método que estas mencionando, pero he visto en los métodos existentes que están utilizando un firmado del body del XML, no se si por ahí van los tiros.

 

Saludos

 

Si y no. El tema del firmado de la factura electrónica va por un lado una vez tienes ese archivo creas una petición SOAP. A través de un componente thttprio conectamos con el webservice y construimos la petición a través de los datos de la interfaz. Esto funciona con la mayoría de los webservices sin tener que modificar ningún dato menos con este. La conexión no se produce porque este webservice no es compatible con el componente. quiza hay algun dato que no estoy configurando correctamente a la hora de hacer la conexión y es lo que estoy intentando averiguar. Gracias. 


  • 0