如何使用 c# 为 paypal CreateInvoice api 创建 SOAP XML 请求消息

Posted

技术标签:

【中文标题】如何使用 c# 为 paypal CreateInvoice api 创建 SOAP XML 请求消息【英文标题】:How to create SOAP XML request message for paypal CreateInvoice api using c# 【发布时间】:2012-11-05 20:27:39 【问题描述】:

我为 PayPal 创建了一个沙盒测试帐户。 我想在 C# 中使用 SOAP xml 格式使用 PayPal api CreateInvoice、SendInvoice 和 CreateAndSendInvoice。来自 x.com 的文档至少没有以基本的 soap xml 格式显示任何已完成的请求消息,而是仅显示标题部分和 soap xml 标记的定义。

一些示例是 JSON 格式,但不是我的首选格式,它轻量级但易于阅读。 SDK 使用的是 NVP 格式,虽然它们有 SOAP 选项,但代码无法为有效负载编写 soap xml 格式。

我需要完整的soap xml请求消息,其中至少包含创建发票所需的字段。

到目前为止,我仍在搜索 ***。

【问题讨论】:

见***.com/a/2346284/76337 感谢John的回复,我只需要完整的soap xml请求消息格式。它包括 xml 格式的标题和必填字段。 不,抱歉,您需要学习如何使用 .NET 中的 SOAP Web 服务。 “手动”创建 XML 是错误的方法。 我只是想确认我发送的soap xml请求消息格式是正确的。谢谢。 【参考方案1】:

API 参考提供了 SOAP 请求的图形表示。例如,您可以查看CreateAndSendInvoice 并查看可以包含在您的 XML/SOAP 请求中的所有标签以及应该如何嵌套所有内容。

如果您要自己构建 XML 来反对使用 WSDL,那么真的不需要为 SOAP 格式化它。这是我刚刚成功运行的 CreateInvoice 的 XML 请求示例...

<?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="">sandbo_1215254764_biz@angelleye.com</merchantEmail>
    <payerEmail xmlns="">sandbo_1204199080_biz@angelleye.com</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>

【讨论】:

感谢 andrew,我可以按照规范进行操作,但有些属性/或命名空间未包括在内。 @GiantHornet 我用一个有效的示例 XML 请求更新了我的答案,因此您可以查看它。

以上是关于如何使用 c# 为 paypal CreateInvoice api 创建 SOAP XML 请求消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c# 中使用 rest api 进行 paypal 卡存在(刷卡)付款?

如何使用paypal C# sdk获取直接支付方式的transactionid

如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?

如何使用 paypal 直接支付 NPV API c# 设置自定义定期支付服务

使用 c# 在 asp.net 中集成 paypal

C# REST PayPal API - 如何传递自定义变量?