Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-02-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
SOAP POST - Webservice con Certificado y SSL

Hola

ya saben que timbrefiscal es un PAC
y que tiene su servicio de pruebas

https://demotf.buzonfiscal.com/timbrado
https://demotf.buzonfiscal.com/timbrado?wsdl

para poder acceder a el se necesita de usar
un certificado personalizado que te dan en formato .pfx
y en .pem

para la conexion segura y el manejo del certificado uso openssl
y los componentes indy. para hacer el get y el post.

una conexion
segura usando ese certificado. ya la logre pero solo obtengo
respuesta del servidor con un archivo xml

esta es la definicion del wsdl que me regresa

Código:
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.5-hudson-$BUILD_NUMBER-. --><wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.buzonfiscal.com/TimbradoCFDI/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" xmlns:xsd2="http://www.sat.gob.mx/TimbreFiscalDigital" name="TimbradoCFDI" targetNamespace="http://www.buzonfiscal.com/TimbradoCFDI/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.buzonfiscal.com/TimbradoCFDI/">
 <xsd:element name="Error">
    <xsd:complexType>
     <xsd:sequence minOccurs="0">
      <xsd:element name="descripcionError" type="xsd:string" maxOccurs="unbounded" />
     </xsd:sequence>
     <xsd:attribute name="codigo" use="required">
      <xsd:simpleType>
       <xsd:restriction base="xsd:string">
        <xsd:enumeration value="" />
       </xsd:restriction>
      </xsd:simpleType>
     </xsd:attribute>
    </xsd:complexType>
 </xsd:element>
    </xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <xsd:import namespace="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" schemaLocation="TimbradoCFD.xsd">
     </xsd:import>
     <xsd:import namespace="http://www.sat.gob.mx/TimbreFiscalDigital" schemaLocation="TimbreFiscalDigital.xsd">
     </xsd:import></xsd:schema></wsdl:types>
  <wsdl:message name="timbradoCFDRequest">
    <wsdl:part element="xsd1:RequestTimbradoCFD" name="request" />
  </wsdl:message>
  <wsdl:message name="timbradoCFDResponse">
    <wsdl:part element="xsd2:TimbreFiscalDigital" name="response" />
  </wsdl:message>
  <wsdl:message name="timbradoCFD_faultMsg">
   <wsdl:part name="fault" element="tns:Error" />
  </wsdl:message>
  <wsdl:portType name="TimbradoCFDI">
    <wsdl:operation name="timbradoCFD">
      <wsdl:input message="tns:timbradoCFDRequest" />
      <wsdl:output message="tns:timbradoCFDResponse" />
            <wsdl:fault name="fault" message="tns:timbradoCFD_faultMsg" />
        </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="TimbradoCFDISOAP" type="tns:TimbradoCFDI">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="timbradoCFD">
      <soap:operation soapAction="http://www.buzonfiscal.com/TimbradoCFDI/timbradoCFD" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TimbradoCFDI">
    <wsdl:port binding="tns:TimbradoCFDISOAP" name="TimbradoCFDISOAP">
      <soap:address location="https://demotf.buzonfiscal.com:443/timbrado" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

el problema es que SOAP, detras de un servidor web con conexion segura
es todo eso nuevo para mi.
segun yo con hacer un post en lugar de un get deberia de funcionar.

Código Delphi [-]
URL :string;
  XMLResponse : TStringStream;
  XMLRequest : TStringStream;
 
url:= 'https://demotf.buzonfiscal.com/timbrado?wsdl
';
 
// el XMLRequest es el archivo xml que timbre fiscal da de muestra sin timbrar
// para que se timbre con su servicio. se llama requestTimbrado.xml
 
  IdHTTP1.Post(URL,XMLRequest, XMLResponse);

el conteido del requestTimbrado.xml
es
Código:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" xmlns:req="http://www.buzonfiscal.com/ns/xsd/bf/RequestTimbraCFDI" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
  <soapenv:Header/>
  <soapenv:Body>
    <tim:RequestTimbradoCFD>
      <cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:ecb="http://www.sat.gob.mx/ecb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:implocal="http://www.sat.gob.mx/implocal" xmlns:bfa2="http://www.buzonfiscal.com/ns/addenda/bf/2" xmlns:terceros="http://www.sat.gob.mx/terceros" xmlns:detallista="http://www.sat.gob.mx/detallista" xmlns:psgecfd="http://www.sat.gob.mx/psgecfd" xmlns:ecc="http://www.sat.gob.mx/ecc" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" tipoDeComprobante="ingreso" total="4.64" subTotal="4.00" certificado="MIIE/jCCA+agAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDkwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMDA3MzAxNjU4NDhaFw0xMjA3MjkxNjU4NDhaMIGXMRIwEAYDVQQDDAlNYXRyaXogU0ExEjAQBgNVBCkMCU1hdHJpeiBTQTESMBAGA1UECgwJTWF0cml6IFNBMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBBQUFBMDEwMTAxQUFBMR4wHAYDVQQFExUgLyBBQUFBMDEwMTAxSERGUlhYMDExEjAQBgNVBAsMCVVuaWRhZCAxMDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsKL9mh8flpnQXVmtOvDnSYgtfRMTPe/4JQMivUYEr6sEAUIQu8tR0xlR0OcDP9LZBfTddUwK2zjiTCQiQhAkgsn8EQsZGI9cisqrePtRXfH/GwLl7l2IHMsAdI4Xvy6GRbszobt2IRuIZLj0MGv5/NcSmQTWv1QkSXMKaSUQ3BsCAwEAAaOB6jCB5zAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDAdBgNVHQ4EFgQUTwXUS0hPz51Nk4KyPhJLgP9qMYYwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL3BraS5zYXQuZ29iLm14L3NhdC5jcmwwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zYXQuZ29iLm14LzAfBgNVHSMEGDAWgBTrWX0EIppTjZ5xGqBYlin1OeCgxTAQBgNVHSAECTAHMAUGAyoDBDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOCAQEAtIP05qlz0J4dITRpQ0mEz47svkoRNHqTlQOXgXGeEfpF9ZowHIjvOw6nL1srLJWHh+c/RhN03gJ1tevw9In5vxMPITlmTeUGrWNqVef5U5hDkA/bg0clEEiVAuyO+r9cYq8l8EZ9Ip6fl9YMmGD80gC/nFDdbhQ04RaelyUh9Gv6pRAOtDevhyjqNupuOoR/Zzt7qMIb5/F7xflPDV6YvO7CS/1E9KGnixIJmdH/JqHm4FdIkeal1zJlN6MBYXgIewnuxkfObS8ZS7GhX9YYCctk+FnHvHDRgx3kmtZWhh0AvEsaZMiZ3IoI1s8xLDPgmY8vJwlbe4IY+qFisczBKA==" noCertificado="30001000000100000809" formaDePago="Pago en una sola exhibición" sello="GzdNXbif5zGZ9wbbPSgHemd6vQZU+oLh7w1utC844O7CjScIPZ19DYn4pwmO7eZT1j9N/2CEkme6ep6YkjmvYNPgTKOE5seutyE2+UQ7n6BjJKtwFm8GIDPc4Xf6/7Y3QFAy6+REuIL1B51FWsUyy4zrJ7VnFkiOqkzikxdDwO0=" fecha="2011-01-08T12:16:40" folio="66" version="3.0" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv3.xsd http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet...calDigital.xsd http://www.sat.gob.mx/detallista http://www.sat.gob.mx/sitio_internet...detallista.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet...l/implocal.xsd http://www.buzonfiscal.com/ns/addenda/bf/2 http://www.buzonfiscal.com/schema/xs...da_BF_v2.2.xsd ">
        <cfdi:Emisor nombre="Empresa Demo" rfc="AAA010101AAA">
          <cfdi:DomicilioFiscal codigoPostal="53400" pais="México" estado="Nuevo Leon" municipio="Monterrey" colonia="Obispado" noExterior="1640" calle="Padre Mier"/>
        </cfdi:Emisor>
        <cfdi:Receptor nombre="Cliente Demo" rfc="CLI010101DEM">
          <cfdi:Domicilio codigoPostal="64060" pais="Mexico" estado="Nuevo Leon" municipio="Monterrey" noExterior="5512" calle="Padre Mier"/>
        </cfdi:Receptor>
        <cfdi:Conceptos>
          <cfdi:Concepto importe="4.00" valorUnitario="2.00" descripcion="2" unidad="2" cantidad="2">
            <cfdi:InformacionAduanera aduana="GDL" fecha="2010-12-12-06:00" numero="132456"/>
          </cfdi:Concepto>
        </cfdi:Conceptos>
        <cfdi:Impuestos totalImpuestosTrasladados="0.64">
          <cfdi:Traslados>
            <cfdi:Traslado importe="0.64" tasa="16.00" impuesto="IVA"/>
          </cfdi:Traslados>
        </cfdi:Impuestos>
        <cfdi:Complemento> 
        </cfdi:Complemento>
      </cfdi:Comprobante>
      <req:InfoBasica RfcEmisor="AAA010101AAA" RfcReceptor="ccc010101ccc"/>
    </tim:RequestTimbradoCFD>
  </soapenv:Body>
</soapenv:Envelope>
el problema es que no se como enviar el post
por que el get si regresa algo y con post solo error interno del sistema
y cual es la forma de enviar un post a un web service
por que como esta detras de https://
la definicion usand el WSDL import wizard de delphi
no sirve.
ya he probado con esa deficion y salen que no hay partes definidas
por eso estoy unsando delphi 7 indy 9 y indy_openssl096g.zip

¿alguna idea de como se envia un post a un webservice con protoclo SOAP 1.2
con delphi e idhttp?

ya no se ni que hacer.

gracias por su atencion
Responder Con Cita
  #2  
Antiguo 18-02-2011
ifarias ifarias is offline
Miembro
 
Registrado: sep 2004
Posts: 23
Poder: 0
ifarias Va por buen camino
Hola.

Por lo que yo entiendo, este se debe tratar como un WebService, o sea que debemos crear un webservice a partir del archivo TimbradoCFDI.wsdl proporcionado en el PAC_Kit.zip.


Se genera bien, pero no puedo compilarlo ya que no se encuentra la referencia:

Código Delphi [-]
  TimbradoCFDI = interface(IInvokable)
  ['{CA94D87A-2654-F586-A8FF-F54929CD4F7B}']
    function  timbradoCFD(const request: RequestTimbradoCFD): TimbreFiscalDigital; stdcall;
  end;

Pero la definición de RequestTimbradoCFD, y la TimbreFiscalDigital, no las encuentro o no se donde se definen.


Construyo los XMLDataBinding, para los archivos cfdv3.xsd, RequestTimbraCFDI.xsd, TimbreFiscalDigital.xsd, y en ninguno de ellos viene la definición, por lo que no puedo generar los .dcu


Estoy trabajando con Delphi 7.


Si alguien tiene alguna idea de por donde seguir, se lo agradeceríamos.
Responder Con Cita
  #3  
Antiguo 18-02-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
Asi es. faltan archivos de definicion de ese namespace

he hecho lo miso que tu.
pero no me resulta. asi que usar el xml databindig no es viable.

luego intente. usar el xml que se recibe de respuesta.
que es un envelope SOAP

pero solo obtengo texto en blanco. o errores de no se puede hacer
ole to string

osea no logro accesar a su estrutura.

intente acceder usando el xmldocument1
al response del timbrado osea al timbre

pero da errores tan solo para acceder al nodo raiz
por que no se definio un namespace

este es el contenido del archivo responsetimbrado.xml

Código:
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:TimbreFiscalDigital xmlns:ns2="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:ns3="http://www.buzonfiscal.com/TimbradoCFDI/" xmlns:ns4="http://www.buzonfiscal.com/ns/xsd/bf/RequestTimbraCFDI" xmlns:ns5="http://www.sat.gob.mx/cfd/3" xmlns:ns6="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" xmlns:ns7="http://www.sat.gob.mx/detallista" xmlns:ns8="http://www.sat.gob.mx/terceros" xmlns:ns9="http://www.sat.gob.mx/ecc" xmlns:ns10="http://www.sat.gob.mx/implocal" xmlns:ns11="http://www.sat.gob.mx/ecb" xmlns:ns12="http://www.buzonfiscal.com/ns/referenceID/v1" xmlns:ns13="http://new.webservice.namespace" selloSAT="DTvowAJn9kFD83/7CVOVhhcOSzf5ZTCANOQmvJ+r58mH2ItSszMqb9ACTsI1MvUzdcehHC9OgrZuH/HLqHGtwBeuGeRrxMirqs+XnMSHD8nu79Ah9bhVQhOAN6YS5MXbGPhzOc+7/x3q6c2gOhA33/AJUuFJSesCdtifwBOwfvQ=" noCertificadoSAT="30001000000100000801" selloCFD="hJCk3eNMPB4a8klyUxNN/Esv/4OGTE8eCd7Ve+c3SmGqDdeH/4fr7yrjaGLnLwH1ABW4vniNN7c6pAXH1mwSS2Rv/3CGMp8x92zFJarsEW6CS+4k9fg8avF0Nt0XJkyyMun+yY1Zbghvqg3owVP10MmEJlu9GcxcOVqQh9l8j4E=" FechaTimbrado="2011-02-17T18:55:22" UUID="e17a2175-b5d9-4efb-8d9f-553b9bf897a5" version="1.0"/></S:Body></S:Envelope>
Responder Con Cita
  #4  
Antiguo 27-04-2011
Pedjlb Pedjlb is offline
Registrado
 
Registrado: feb 2008
Posts: 1
Poder: 0
Pedjlb Va por buen camino
Hola

Buen dia.

Ifarias, comparto contigo mi experiencia en delphi 2010. Tenia exactamente ese problema, y lo unico que hice fue colocar todos los archivos de definicion XSD y el archivo wsdl en la misma carpeta del proyecto y compiló perfecto. No se si sea la solución idonea o si funcione para las referencias por internet. Solo te comparto mi experiencia, espero te ayude.

Ahora mi duda es como usar los certificados que me envia timbrefiscal para conectarme mediante soap con el webservice, si alguien pudiera ayudarme, se lo agradeceria mucho. Hasta luego.
Responder Con Cita
  #5  
Antiguo 28-04-2011
ifarias ifarias is offline
Miembro
 
Registrado: sep 2004
Posts: 23
Poder: 0
ifarias Va por buen camino
Cita:
Empezado por Pedjlb Ver Mensaje
Buen dia.

Ifarias, comparto contigo mi experiencia en delphi 2010. Tenia exactamente ese problema, y lo unico que hice fue colocar todos los archivos de definicion XSD y el archivo wsdl en la misma carpeta del proyecto y compiló perfecto. No se si sea la solución idonea o si funcione para las referencias por internet. Solo te comparto mi experiencia, espero te ayude.

Ahora mi duda es como usar los certificados que me envia timbrefiscal para conectarme mediante soap con el webservice, si alguien pudiera ayudarme, se lo agradeceria mucho. Hasta luego.
Excelente idea, muchas gracias, yo resolví el problema cambiando los nombre que Delphi da por default, y con eso pude compilarlosi problema.

Todabía faltan detalles por resolver, pero bueno, un punto menos.
Responder Con Cita
  #6  
Antiguo 09-05-2011
Sodesne Sodesne is offline
Registrado
 
Registrado: nov 2008
Posts: 7
Poder: 0
Sodesne Va por buen camino
Duda

¿Ya pudiste hacer la conexión completa con timbre fiscal, yo ando metiendome tmb con ellos pero se me hace muy confuso el asunto sobretodo pq no entiendo bien eso del webservice? ¿Cómo lo has solucionado? o por donde me recomiendas comenzar? para hacer la conexion con ellos o con qué componente? AAAHHRRRGH !!! me quiero volver chango!!! por la ignorancia :S

Saludos
gracias por cualquier ayuda que pudiesen darme
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP josemmerida Internet 2 23-12-2010 13:37:16
FTP con SSL, Obtener el certificado mercury2005 Internet 0 27-12-2006 08:48:42
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
WebService y SOAP linsua Varios 0 07-04-2004 19:27:16
certificado en word nicocer Servers 0 15-03-2004 14:41:30


La franja horaria es GMT +2. Ahora son las 04:42:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi