1

我知道有 20 多个关于此的问题,但是没有一个有帮助,API 文档和其他一些贝宝合作伙伴网站也没有..

生成的 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”,我无法理解为什么它不起作用。对我有什么提示吗?提前致谢!

4

3 回答 3

1

我认为您的 XML 无效:

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

它必须是 ns1 在两个标签中。

于 2015-03-12T16:50:32.720 回答
0

我遇到了同样的问题。问题在于SetExpressCheckoutRequestDetailsns1 ( eBLBaseComponents),而不是 ns2 ( PayPalAPI)。在最终弄清楚之前花了大约六个小时猛击我的头。

于 2015-06-23T01:44:19.713 回答
0

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

XML 中有问题的部分是<ns2:SetExpressCheckoutRequest>,它的命名空间应该是 ,ns1而不是ns2

于 2015-06-26T16:01:12.737 回答