PHP SOAP Client выдает ошибку при загрузке WSDL из PayPal - PullRequest
0 голосов
/ 29 июля 2011
$wsdl = "https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl";
$soap = new SoapClient($wsdl);

выдает ошибку:

SOAP-ERROR: Схема синтаксического анализа: неожиданно в последовательности

Пробовал в версиях PHP 5.3.4, 5.3.0

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Проблема в https://www.paypalobjects.com/wsdl/eBLBaseComponents.xsd, которая является зависимостью для https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
Чтобы обойти эту проблему, вы можете загрузить WSDL и его зависимости и исправить eBLBaseComponents.xsd вручную (удалить ошибочные дополнительные>на четвертой строке снизу справа после).

1) Загрузите следующие 4 файла в один каталог

https://www.paypal.com/wsdl/PayPalSvc.wsdl
https://www.paypal.com/wsdl/eBLBaseComponents.xsd
https://www.paypal.com/wsdl/CoreComponentTypes.xsd
https://www.paypal.com/wsdl/EnhancedDataTypes.xsd

2) Удалите ошибочные лишние «>» в ​​четвертой строке снизу для eBLBaseComponents.xsd.
3) Загрузите изменения на свой собственный хост или сохраните их локально в зависимости от вашего приложения.
4) В вашем приложении укажите новый фиксированный WSDL.

1 голос
/ 29 июля 2011

Похоже, Paypal принимает только авторизованное соединение с этим SOAP-URL.

Сервис PayPal SOAP API защищен, чтобы его могли использовать только авторизованные участники PayPal.

Вы можете прочитать об этом здесь .

...