【问题标题】:Sending an API CAll with PayPal SOAP API使用 PayPal SOAP API 发送 API CAll
【发布时间】:2011-01-07 00:30:15
【问题描述】:

好的,我的 .NET 项目中有服务引用。是的,我知道您现在可以访问代理类了。

但在过去,我习惯于使用 NVP 通过 HttpWebRequest 对象执行此操作,但从未尝试过使用 WSDL 并以这种方式发送 SOAP 请求。

我不太确定使用哪个对象来发送请求。不知道从哪里开始。我查看了文档,但没有看到 .NET 和 PayPal 的好例子。

除了 WSDL 与通过 NVP API 和查询字符串参数发送 HttpWebRequest 之外,我真的不明白您发送请求的方式是否存在差异。这一切都只是在 Http 上,所以你不能在 SOAP API(使用 WSDL)上也使用 HttpWebRequest 吗?

【问题讨论】:

标签: c# paypal paypal-soap


【解决方案1】:

首先从元数据生成服务引用:右键单击项目 -> 添加服务引用并指向 WSDL url:https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

这将为当前项目生成可用于发送请求的代理类:

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);
}

【讨论】:

  • 是的,我有服务,只是不明白使用什么对象来发送请求。所以我知道如何使用代理类,就像我要像 HttpWebRequest 一样使用或使用代理类来发出请求并包含 SOAP
  • 我现在修改了原帖。再读一遍。
  • HttpWebRequest 是一个低级 API。它用于手动伪造 HTTP 请求和接收响应。 SOAP 是基于 XML 的 HTTP 协议。当您生成客户端代理类时,它将负责正确地形成 XML 请求并解析服务器的 XML 响应。您需要做的就是调用相应的 C# 方法。因此,您应该从不使用 HttpWebRequest 来调用基于 SOAP 的 Web 服务,而应该使用生成的类。
  • 所以你所要做的就是调用代理方法就可以了?哇。好的,我迟到了网络服务的游戏。上次我通过 NVP 完成并自己完成了 HttpWebRequest 的所有代码:使用 stringbuilder 手动格式化 XML,通过 HttpWebResonse 或其他方式获得响应......
  • 那么您的 PayPalAPIInterfaceClient 是什么?我在最新的 WSDL 中没有看到这一点。我认为 AbstractRequestType 是你会使用的。不知道那是为了什么。
猜你喜欢
  • 1970-01-01
  • 2012-05-05
  • 2020-06-30
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2023-01-01
  • 1970-01-01
相关资源
最近更新 更多