Я использую PHP-класс SoapClient для подключения к PayPal. У меня есть ряд проблем:
- Параметры, которые я передаю вызову soap, -
array('ReturnAllCurrencies'=>0, 'Version'=>'63.0')
, но, как вы можете видеть из запроса ниже, 63.0
вставляется в <param1>
, что бы это ни было. Я даже не вижу ReturnAllCurrencies в запросе.
В этом запросе я выполняю команду GetBalance
:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ebay:api:PayPalAPI" xmlns:ns2="urn:ebay:apis:eBLBaseComponents">
<SOAP-ENV:Header>
<ns1:RequesterCredentials>
<ns2:Credentials>
<ns2:Username>xxxx</ns2:Username>
<ns2:Password>xxx</ns2:Password>
<ns2:Signature>xxx</ns2:Signature>
</ns2:Credentials>
</ns1:RequesterCredentials>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:GetBalanceReq/>
<param1>63.0</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Я нашел запрос выше через SoapClient :: __ getLastRequest (). Это не совсем похоже на пример на сайте PayPal. Что с тегом GetBalanceReq
? Почему он имеет суффикс * Req?
2.При использовании производственного сервера и файлов wsdl я получаю ошибку php:
SOAP-ERROR: парсинг WSDL:
Не удалось загрузить с
«https://www.paypal.com/wsdl/PayPalSvc.wsdl'
: Ожидается начальный тег, '<'
не найдено </p>
Кроме того, если я пытаюсь посетить URL-адрес рабочего сертификата в FireFox (https://api.paypal.com/2.0/), я получаю ssl_error_handshake_failure_alert
Должен ли я загрузить файл wsdl и указать на локальную версию в первом аргументе конструкции SoapClient :: __ или я просто должен указать на размещенную копию PayPal? Я изначально предполагал последнее, но теперь я не уверен