PayPal Express Checkout SOAP - 订单总计缺失

时间:2015-03-12 16:43:14

标签: xml soap paypal express-checkout paypal-soap

我知道有20多个问题,但没有一个是有用的,API文档和其他一些PayPal合作伙伴网站也没有。

生成的XML / SOAP看起来完全如下:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ns1="urn:ebay:apis:eBLBaseComponents" 
    xmlns:ns2="urn:ebay:api:PayPalAPI">
  <SOAP-ENV:Header>
    <ns2:RequesterCredentials>
      <ns1:Credentials>
        <ns1:Username>[FILTERED]</ns1:Username>
        <ns1:Password>[FILTERED]</ns1:Password>
        <ns1:Signature>[FILTERED]</ns1:Signature>
      </ns1:Credentials>
    </ns2:RequesterCredentials>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <ns2:SetExpressCheckoutReq>
      <ns2:SetExpressCheckoutRequest>
        <ns1:Version>121.0</ns1:Version>
        <ns2:SetExpressCheckoutRequestDetails>
          <ns1:ReturnUrl>http://localhost/foo</ns1:ReturnUrl>
          <ns1:CancelUrl>http://localhost/bar</ns1:CancelUrl>
          <ns1:PaymentDetails>
            <ns1:OrderTotal currencyID="EUR">100000</ns1:OrderTotal>
          </ns1:PaymentDetails>
        </ns2:SetExpressCheckoutRequestDetails>
      </ns2:SetExpressCheckoutRequest>
    </ns2:SetExpressCheckoutReq>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

然而,我得到“Order Total is missing”,我无法理解为什么它不起作用。有什么提示吗?提前谢谢!

3 个答案:

答案 0 :(得分:1)

我认为您的XML无效:

< ns1 :OrderTotal currencyID="EUR">100000</ ns2 :OrderTotal>

两个标签都必须是ns1。

答案 1 :(得分:0)

我遇到了同样的问题。问题是SetExpressCheckoutRequestDetails位于ns1(eBLBaseComponents)中,而不是ns2(PayPalAPI)。花了大约六个小时抨击我的头,然后终于搞清楚了。

答案 2 :(得分:0)

在Andrew Wilcox的回答帮助下解决了这个问题。

XML中的违规部分为<ns2:SetExpressCheckoutRequest>,应使用ns1而不是ns2进行命名空间。