UrK
UrK

Reputation: 2300

Getting started with Paypal Adaptive Payments in C# SOAP

I'm trying to start with Adaptive Payments by Paypal using SOAP interface. When adding service reference to https://svcs.sandbox.paypal.com/AdaptivePayments?WSDL the following warning is shown by Visual Studio:

Custom tool warning: Cannot import wsdl:binding Detail: The WSDL binding named AdaptivePaymentsSOAP11Binding is not valid because no match for operation CancelPreapproval was found in the corresponding portType definition. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://svcs.paypal.com/services']/wsdl:binding[@name='AdaptivePaymentsSOAP11Binding'] C:\cproj\daemon\Service References\PaypalSandboxApi\Reference.svcmap 1 1 daemon

Discarding this message, the reference added successfully. In order to perform a transaction, I try to create the client:

var client = new PaypalSandboxApi.AdaptivePaymentsPortTypeClient()

This throws InvalidOperationException:

Could not find default endpoint element that references contract 'PaypalSandboxApi.AdaptivePaymentsPortType' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

Am I missing something?

Should I use missing AdaptivePaymentsSOAP11Binding and not AdaptivePaymentsPortTypeClient?

Upvotes: 0

Views: 1405

Answers (1)

Tom Lianza
Tom Lianza

Reputation: 4072

It looks like importing this WSDL doesn't generate the servicemodel config. I kludged one together like this (and updated the relevant classname to match yours, so you can copy/paste):

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="PaypalAdaptivePayBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="1048576" maxBufferPoolSize="1048576" maxReceivedMessageSize="1048576" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="65536" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="Transport">
        <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="https://svcs.sandbox.paypal.com/AdaptivePayments" 
    binding="basicHttpBinding" bindingConfiguration="PaypalAdaptivePayBinding" 
    contract="PaypalSandboxApi.AdaptivePaymentsPortType" 
    name="PaypalAdaptivePay" />
</client>

Upvotes: 1

Related Questions