我正在使用 PHP 的 SoapClient 类连接到贝宝。我有很多问题:
- 我传递给soap调用的参数是,
array('ReturnAllCurrencies'=>0, 'Version'=>'63.0')
但正如您在下面的请求中看到的那样,63.0
放入<param1>
任何内容。我什至没有在请求中看到 ReturnAllCurrencies。
在这个请求中,我正在执行一个GetBalance
命令:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ebay:api:PayPalAPI" xmlns:ns2="urn:ebay:apis:eBLBaseComponents">
<SOAP-ENV:Header>
<ns1:RequesterCredentials>
<ns2:Credentials>
<ns2:Username>xxxx</ns2:Username>
<ns2:Password>xxx</ns2:Password>
<ns2:Signature>xxx</ns2:Signature>
</ns2:Credentials>
</ns1:RequesterCredentials>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:GetBalanceReq/>
<param1>63.0</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我通过 SoapClient::__getLastRequest() 找到了上面的请求。它看起来不像贝宝网站上的示例。GetBalanceReq
标签怎么了?为什么它有 *Req 后缀?
2.使用生产服务器和wsdl文件时,出现php错误:
SOAP-ERROR:解析 WSDL:无法从“ https://www.paypal.com/wsdl/PayPalSvc.wsdl' ”加载;: 需要开始标签,'<' 未找到
此外,如果我尝试访问 FireFox ( https://api.paypal.com/2.0/ ) 中的生产证书 url,我会收到 ssl_error_handshake_failure_alert
我应该下载 wsdl 文件并在 SoapClient::__construct 的第一个参数中指向本地版本,还是应该简单地指向贝宝托管副本?我最初认为是后者,但现在我不确定