我知道有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>
但是,我得到"订单总数丢失",我无法理解为什么它不起作用。对我有什么提示吗?提前感谢!
我认为您的XML无效:
<
ns1
:OrderTotal currencyID="EUR">100000</
ns2
:OrderTotal>
在两个标记中都必须是 ns1。
我遇到了同样的问题。 问题是SetExpressCheckoutRequestDetails
在 ns1 ( eBLBaseComponents
中,而不是 ns2 ( PayPalAPI
中。 花了大约六个小时猛烈抨击我的头,才终于弄清楚了。
在Andrew Wilcox的回答的帮助下解决了它。
XML 中存在问题的部分是 <ns2:SetExpressCheckoutRequest>
,它应该使用 ns1
而不是 ns2
命名。