2010-01-19 16 views
5

Ok, entonces tengo la referencia de servicio en mi proyecto .NET. Y sí, sé que ahora tienes acceso a las clases proxy.Enviando un CAll API con la API SOAP de PayPal

Pero en el pasado, estoy acostumbrado a hacer esto a través de un objeto HttpWebRequest utilizando NVP, pero nunca intenté usar el WSDL y enviar una solicitud SOAP de esta manera.

No estoy seguro de qué objeto utilizar para enviar la solicitud. No estoy seguro por dónde empezar aquí. Miré los documentos pero no encontré buenos ejemplos para .NET y PayPal.

Aparte de un WSDL frente al envío de una HttpWebRequest a través de una NVP API y params de querystring, realmente no entiendo si hay una diferencia en la forma de enviar la solicitud. Todo acaba de ser sobre Http, ¿no puedes usar HttpWebRequest también sobre una API SOAP (usando WSDL)?

+0

¿Puede ayudarme con este problema?!?! http://stackoverflow.com/questions/8762703/integrating-paypal-in-c-net-solution-using-wsdl-soap – dparkar

Respuesta

7

Se empieza por la generación de una referencia de servicio de los metadatos: Haga clic derecho sobre el proyecto -> Agregar servicio de referencia y punto a la URL de WSDL: https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

Esto generará clases de proxy para el proyecto actual que podría ser utilizado para enviar solicitudes:

using (var client = new PayPalAPIInterfaceClient()) 
{ 
    var credentials = new CustomSecurityHeaderType 
    { 
     Credentials = new UserIdPasswordType 
     { 
      Username = "username", 
      Password = "password" 
     } 
    }; 
    var request = new AddressVerifyReq 
    { 
     AddressVerifyRequest = new AddressVerifyRequestType 
     { 
      Street = "some street", 
      Zip = "12345" 
     } 
    }; 
    var response = client.AddressVerify(ref credentials, request); 
} 
+0

Sí, tenía el servicio, simplemente no entendía qué objeto utilizar para enviar la solicitud. Así que sé cómo usar las clases de proxy solo si voy a utilizar como HttpWebRequest o usar la clase de proxy en su lugar para hacer la solicitud e incluir el SOAP – PositiveGuy

+0

Modifiqué ahora la publicación original. Lea de nuevo. – PositiveGuy

+0

'HttpWebRequest' es una API de bajo nivel. Se utiliza para forjar manualmente solicitudes HTTP y recibir respuesta. SOAP es un protocolo basado en XML a través de HTTP. Cuando genere una clase proxy de cliente, se encargará de formatear adecuadamente las solicitudes XML y analizar las respuestas XML del servidor. Todo lo que necesita hacer es llamar a los métodos C# correspondientes. Por lo tanto, nunca ** debes ** utilizar HttpWebRequest para invocar servicios web basados ​​en SOAP, sino que debes usar las clases generadas. –

Cuestiones relacionadas