2010-01-19 10 views
5

Ok, donc j'ai la référence de service dans mon projet .NET. Et oui, je sais que vous avez maintenant accès à des classes proxy. Mais dans le passé, j'ai l'habitude de le faire via un objet HttpWebRequest utilisant NVP, mais je n'ai jamais essayé d'utiliser le WSDL et d'envoyer une requête SOAP de cette façon.Envoi d'une API avec l'API SOAP PayPal

Je ne suis pas très sûr de l'objet à utiliser pour envoyer la requête. Je ne sais pas par où commencer ici. J'ai regardé les docs mais je n'ai pas vu de bons exemples pour .NET et PayPal.

Outre un WSDL par rapport à l'envoi d'une demande HttpWebRequest via une API NVP et des paramètres de chaîne de requête, je ne comprends vraiment pas s'il existe une différence dans la façon dont vous envoyez la requête. Tout est juste sur Http donc ne pouvez-vous pas utiliser HttpWebRequest également sur une API SOAP (en utilisant WSDL)?

+0

Pouvez-vous s'il vous plaît aidez-moi de ce problème ??!?! http://stackoverflow.com/questions/8762703/integrating-paypal-in-c-net-solution-using-wsdl-soap – dparkar

Répondre

7

Vous commencez par générer une référence de service à partir des métadonnées: Faites un clic droit sur le projet -> Ajouter un service de référence et le point à l'URL WSDL: https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

Cela va générer des classes proxy pour le projet en cours qui pourrait être utilisé pour envoyer des demandes:

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

Oui, j'ai eu le service, je ne comprenais pas quel objet utiliser pour envoyer la demande. Donc, je sais comment utiliser les classes proxy juste si je dois utiliser comme HttpWebRequest ou utiliser la classe proxy à la place pour faire la demande et inclure le SOAP – PositiveGuy

+0

J'ai modifié maintenant la publication originale. Lire à nouveau. – PositiveGuy

+0

'HttpWebRequest' est une API de bas niveau. Il est utilisé pour forger manuellement des requêtes HTTP et recevoir une réponse. SOAP est un protocole XML basé sur HTTP. Lorsque vous générez une classe de proxy client, elle prend soin de former correctement les requêtes XML et d'analyser les réponses XML du serveur. Tout ce que vous devez faire est d'appeler les méthodes C# correspondantes. Vous ne devriez donc jamais utiliser ** HttpWebRequest pour invoquer des services Web basés sur SOAP, mais vous devriez plutôt utiliser les classes générées. –