如何使用 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 获取交易详情?