PHP SOAP客户端从paypal加载WSDL时抛出错误

时间:2011-07-29 11:03:00

标签: php paypal soap-client

$wsdl = "https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl";
$soap = new SoapClient($wsdl);

抛出错误:

SOAP-ERROR:解析架构:序列中意外

试用PHP版本5.3.4,5.3.0

2 个答案:

答案 0 :(得分:3)

问题出在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 :(得分:1)

似乎Paypal只接受授权连接到此SOAP URL。

  

PayPal SOAP API服务受到保护,以确保只有授权的PayPal成员才能使用它。

您可以阅读here