http://www.delphiacc...te-i-ii-y-iii)/
Segui esos pasos y efectivamente puede crear el servicio web que uso para generar CFDIS, he programado todo la parte de generar
el cfdi y en efectivo me los genera solo que hay un problema cuando mando un caracter como México,Peña etc... el xml y el pdf que me devuelve el web service
me salen los datos asi M??xivo, Pe??a, he tratado de mandar el UTF8Decode pero no funciona, les dejo mi codigo,uso Delphi 7 y agradezco sus repuestas.
Codigo generado del web service
delphi
// ************************************************************************ // // The types declared in this file were generated from data read from the // WSDL File described below: // WSDL : http://www.fel.mx/ConexionRemotaCFDI32/ConexionRemota32.asmx?WSDL // >Import : http://www.fel.mx/ConexionRemotaCFDI32/ConexionRemota32.asmx?WSDL:0 // Encoding : utf-8 // Version : 1.0 // (16/11/2012 05:39:10 p.m. - - $Rev: 10138 $) // ************************************************************************ // unit ConexionRemota32; interface uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns,rio; const IS_OPTN = $0001; IS_UNBD = $0002; IS_NLBL = $0004; IS_REF = $0080; type // ************************************************************************ // // The following types, referred to in the WSDL document are not being represented // in this file. They are either aliases[@] of other types represented or were referred // to but never[!] declared in the document. The types from the latter category // typically map to predefined/known XML or Borland types; however, they could also // indicate incorrect WSDL documents that failed to declare or import a schema type. // ************************************************************************ // // !:string - "http://www.w3.org/2001/XMLSchema"[Gbl] ArrayOfString = array of WideString; { "https://www.fel.mx/ConexionRemotaCFDI"[GblCplx] } // ************************************************************************ // // Namespace : https://www.fel.mx/ConexionRemotaCFDI // soapAction: https://www.fel.mx/ConexionRemotaCFDI/%operationName% // transport : http://schemas.xmlsoap.org/soap/http // style : document // binding : ConexionRemota32Soap // service : ConexionRemota32 // port : ConexionRemota32Soap // URL : http://www.fel.mx/ConexionRemotaCFDI32/ConexionRemota32.asmx // ************************************************************************ // ConexionRemota32Soap = interface(IInvokable) ['{E4A3238C-F777-D8FE-02E9-DAF81F6A193C}'] function GenerarCFDIv32(const datosUsuario: ArrayOfString; const datosReceptor: ArrayOfString; const datosCFDI: ArrayOfString; const etiquetas: ArrayOfString; const conceptos: ArrayOfString; const informacionAduanera: ArrayOfString; const retenciones: ArrayOfString; const traslados: ArrayOfString; const retencionesLocales: ArrayOfString; const trasladosLocales: ArrayOfString): ArrayOfString; stdcall; function GenerarCodigoBidimensional(const datosUsuario: ArrayOfString; const UUID: WideString): ArrayOfString; stdcall; function CancelarCFDI(const datosUsuario: ArrayOfString; const ListaACancelar: ArrayOfString): ArrayOfString; stdcall; function EnviarCFDI(const datosUsuario: ArrayOfString; const UUID: WideString; const email: WideString): ArrayOfString; stdcall; function ObtenerPDF(const datosUsuario: ArrayOfString; const UUID: WideString): ArrayOfString; stdcall; function ObtenerNumeroCreditos(const datosUsuario: ArrayOfString): ArrayOfString; stdcall; end; function GetConexionRemota32Soap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ConexionRemota32Soap; implementation uses SysUtils; function GetConexionRemota32Soap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ConexionRemota32Soap; const defWSDL = 'http://www.fel.mx/ConexionRemotaCFDI32/ConexionRemota32.asmx?WSDL'; defURL = 'http://www.fel.mx/ConexionRemotaCFDI32/ConexionRemota32.asmx'; defSvc = 'ConexionRemota32'; defPrt = 'ConexionRemota32Soap'; var RIO: THTTPRIO; begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as ConexionRemota32Soap); if UseWSDL then begin RIO.WSDLLocation := Addr; RIO.Service := defSvc; RIO.Port := defPrt; end else RIO.URL := Addr; finally if (Result = nil) and (HTTPRIO = nil) then RIO.Free; end; end; initialization InvRegistry.RegisterInterface(TypeInfo(ConexionRemota32Soap), 'https://www.fel.mx/ConexionRemotaCFDI', 'UTF-8'); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ConexionRemota32Soap), 'https://www.fel.mx/ConexionRemotaCFDI/%operationName%'); InvRegistry.RegisterInvokeOptions(TypeInfo(ConexionRemota32Soap), ioDocument); RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfString), 'https://www.fel.mx/ConexionRemotaCFDI', 'ArrayOfString'); end.