PHP SOAP客户端抛出错误,而贝宝

问题描述:

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

加载WSDL引发错误:PHP SOAP客户端抛出错误,而贝宝

SOAP的错误:解析模式:顺序意外

试图在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。

看来贝宝只接受授权连接到这个SOAP网址。

The PayPal SOAP API service is protected to ensure that only authorized PayPal members use it.

你可以阅读一下here