Как создать сообщение запроса SOAP XML для API PayPal CreateInvoice с помощью С#

Я создал тестовую учетную запись песочницы для PayPal. Я хочу использовать PayPal api CreateInvoice, SendInvoice и CreateAndSendInvoice, используя формат SOAP xml на С#. Документация с сайта x.com не показывает завершенное сообщение запроса, по крайней мере, в базовом формате soap xml, вместо этого показывает только часть заголовка и определения для тегов soap xml.

Некоторые примеры представлены в формате JSON, но это не мой предпочтительный формат, он легкий, но удобочитаемый. SDK используют формат NVP, хотя у них есть опция SOAP, но коды не могут составить формат soap xml для полезной нагрузки.

Мне нужно завершенное сообщение с запросом на мыло xml, по крайней мере, с обязательными полями для создания счета-фактуры.

Я все еще ищу stackoverflow.


person GiantHornet    schedule 17.11.2012    source источник
comment
См. stackoverflow.com/a/2346284/76337.   -  person John Saunders    schedule 17.11.2012
comment
спасибо за ответ, Джон, мне просто нужен готовый формат сообщения запроса мыла xml. он включает заголовки и обязательные поля в формате xml.   -  person GiantHornet    schedule 17.11.2012
comment
Нет, извините, вам нужно научиться использовать веб-службы SOAP из .NET. Создание XML вручную — неправильный способ сделать это.   -  person John Saunders    schedule 17.11.2012
comment
Я просто хочу подтвердить, что формат сообщения запроса мыла xml, который я отправляю, верен. благодаря.   -  person GiantHornet    schedule 17.11.2012


Ответы (1)


Справочник по API предоставляет графическое представление запроса SOAP. Например, вы можете взглянуть на CreateAndSendInvoice и просмотреть все теги, которые можно включить в запрос XML/SOAP, а также то, как все должно быть вложено.

Если вы собираетесь создавать XML самостоятельно, а не использовать WSDL, нет необходимости форматировать его для SOAP. Вот пример XML-запроса для CreateInvoice, который я только что успешно выполнил...

<?xml version="1.0" encoding="utf-8"?>
<CreateInvoiceRequest xmlns="http://svcs.paypal.com/types/ap">
  <requestEnvelope xmlns="">
    <detailLevel>ReturnAll</detailLevel>
    <errorLanguage>en_US</errorLanguage>
  </requestEnvelope>
  <invoice xmlns="">
    <merchantEmail xmlns="">[email protected]</merchantEmail>
    <payerEmail xmlns="">[email protected]</payerEmail>
    <number xmlns="">12Z3-ABCDE</number>
    <merchantInfo xmlns="">
      <firstName xmlns="">Tester</firstName>
      <lastName xmlns="">Testerson</lastName>
      <businessName xmlns="">Testers, LLC</businessName>
      <phone xmlns="">555-555-5555</phone>
      <fax xmlns="">555-555-5556</fax>
      <website xmlns="">http://www.domain.com</website>
      <customValue xmlns="">Some custom info.</customValue>
      <address xmlns="">
        <line1 xmlns="">123 Main St.</line1>
        <city xmlns="">Grandview</city>
        <state xmlns="">MO</state>
        <postalCode xmlns="">64030</postalCode>
        <countryCode xmlns="">US</countryCode>
      </address>
    </merchantInfo>
    <itemList xmlns=""><item xmlns="">
      <name xmlns="">Test Widget 1</name>
      <description xmlns="">This is a test widget #1</description>
      <date xmlns="">2012-02-18</date>
      <quantity xmlns="">1</quantity>
      <unitPrice xmlns="">10.00</unitPrice>
      </item><item xmlns="">
      <name xmlns="">Test Widget 2</name>
      <description xmlns="">This is a test widget #2</description>
      <date xmlns="">2012-02-18</date>
      <quantity xmlns="">2</quantity>
      <unitPrice xmlns="">20.00</unitPrice>
      </item></itemList>
    <currencyCode xmlns="">USD</currencyCode>
    <paymentTerms xmlns="">DueOnReceipt</paymentTerms>
    <note xmlns="">This is a test invoice.</note>
    <merchantMemo xmlns="">This is a test invoice.</merchantMemo>
    <billingInfo xmlns="">
      <firstName xmlns="">Tester</firstName>
      <lastName xmlns="">Testerson</lastName>
      <businessName xmlns="">Testers, LLC</businessName>
      <phone xmlns="">555-555-5555</phone>
      <fax xmlns="">555-555-5556</fax>
      <website xmlns="">http://www.domain.com</website>
      <customValue xmlns="">Some custom info.</customValue>
      <address xmlns="">
        <line1 xmlns="">123 Main St.</line1>
        <city xmlns="">Grandview</city>
        <state xmlns="">MO</state>
        <postalCode xmlns="">64030</postalCode>
        <countryCode xmlns="">US</countryCode>
      </address>
    </billingInfo>
    <shippingInfo xmlns="">
      <firstName xmlns="">Tester</firstName>
      <lastName xmlns="">Testerson</lastName>
      <businessName xmlns="">Testers, LLC</businessName>
      <phone xmlns="">555-555-5555</phone>
      <fax xmlns="">555-555-5556</fax>
      <website xmlns="">http://www.domain.com</website>
      <customValue xmlns="">Some custom info.</customValue>
      <address xmlns="">
        <line1 xmlns="">123 Main St.</line1>
        <city xmlns="">Grandview</city>
        <state xmlns="">MO</state>
        <postalCode xmlns="">64030</postalCode>
        <countryCode xmlns="">US</countryCode>
      </address>
    </shippingInfo>
    <shippingAmount xmlns="">10.00</shippingAmount>
    <logoUrl xmlns="">https://www.usbswiper.com/images/angelley-clients/cpp-header-image.jpg</logoUrl>
    <referrerCode xmlns="">AngellEYE_PHPClass</referrerCode>
  </invoice>
</CreateInvoiceRequest>
person Drew Angell    schedule 20.11.2012
comment
спасибо, Эндрю, я могу следовать спецификациям, но некоторые атрибуты/или пространства имен не включены. - person GiantHornet; 21.11.2012
comment
@GiantHornet Я обновил свой ответ образцом XML-запроса, который работает, чтобы вы могли на него взглянуть. - person Drew Angell; 24.11.2012