PayPal 快速结帐 SOAP - 订单总数丢失

PayPal Express Checkout SOAP - Order Total Missing

我知道有 20 多个关于此的问题,但是 none 很有帮助,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",但我无法理解为什么它不起作用。对我有什么提示吗?提前致谢!

我认为你的 XML 无效:

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

两个标签都必须是ns1。

我遇到了同样的问题。问题是 SetExpressCheckoutRequestDetails 在 ns1 (eBLBaseComponents) 中,而不是 ns2 (PayPalAPI)。花了大约 6 个小时敲打我的脑袋才终于弄明白。

在 Andrew Wilcox 的回答的帮助下解决了它。

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