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

标签 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 上试用

最佳答案

问题出在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/

相关文章:

php - PHP 的 JQuery ajax post 问题

php - 一个 Laravel 4 安装的多个应用程序/项目

php - 如何在 php 的 SoapClient 中设置和禁用 header ?

java - 如何使用 SOAP 将对象从 PHP 发送到 Java Web 服务?

javascript - 如何根据 braintree 中的客户 ID 在交易过程中为特定客户显示已保存的信用卡?

web-services - 客户端 spring-ws 连接池是否可能?

php - 使用谷歌地图跟踪车辆或手机位置

php - 更改CSS文件中所有图像的目录

php - PayPal Parellel 付款和退款

node.js - PayPal 客户端验证失败