$wsdl = "https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl";
$soap = new SoapClient($wsdl);
抛出错误:
SOAP-ERROR:解析模式:顺序意外
在 PHP 版本 5.3.4、5.3.0 上试用
最佳答案
问题出在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。
关于从 paypal 加载 WSDL 时 PHP SOAP 客户端抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6872139/