PayPal Express Checkout 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>
Тем не менее, я получаю "Всего заказов не хватает", и я не могу понять, почему это не работает. Любые намеки для меня? Заранее спасибо!
3 ответа
Решил это, с помощью ответа Эндрю Уилкокса.
Обидная часть в XML <ns2:SetExpressCheckoutRequest>
, который должен быть в пространстве имен с ns1
вместо ns2
,
Я думаю, что ваш XML недействителен:
<
ns1
:OrderTotal currencyID="EUR">100000</
ns2
:OrderTotal>
Это должен быть ns1 в обоих тегах.
Я столкнулся с той же проблемой. Проблема в том, что SetExpressCheckoutRequestDetails
находится в ns1 (eBLBaseComponents
), а не ns2 (PayPalAPI
). Потратил около шести часов, ударив меня головой, прежде чем наконец понять это.