- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我最近从 PHP5.4 升级到 PHP7。天哪,这是一个变化,但这不是重点。
升级后我遇到了 SoapService 的问题。
这是我的 SoapRequest 在 PHP5.4 上的样子:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn:usaepay" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Body>
<ns1:searchTransactions env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<Token xsi:type="ns1:ueSecurityToken">
<ClientIP xsi:type="xsd:string">*redacted*</ClientIP>
<PinHash xsi:type="ns1:ueHash">
<HashValue xsi:type="xsd:string">*redacted*</HashValue>
<Seed xsi:type="xsd:string">*redacted*</Seed>
<Type xsi:type="xsd:string">sha1</Type>
</PinHash>
<SourceKey xsi:type="xsd:string">*redacted*</SourceKey>
</Token>
<Search enc:itemType="ns1:SearchParam" enc:arraySize="3" xsi:type="ns1:SearchParamArray">
<item xsi:type="ns1:SearchParam">
<Field xsi:type="xsd:string">created</Field>
<Type xsi:type="xsd:string">gt</Type>
<Value xsi:type="xsd:string">2016-07-26</Value>
</item>
<item xsi:type="ns1:SearchParam">
<Field xsi:type="xsd:string">created</Field>
<Type xsi:type="xsd:string">lt</Type>
<Value xsi:type="xsd:string">2016-07-27</Value>
</item>
<item xsi:type="ns1:SearchParam">
<Field xsi:type="xsd:string">response</Field>
<Type xsi:type="xsd:string">eq</Type>
<Value xsi:type="xsd:string">A</Value>
</item>
</Search>
<MatchAll xsi:type="xsd:boolean">true</MatchAll>
<Start xsi:type="xsd:integer">0</Start>
<Limit xsi:type="xsd:integer">9999</Limit>
<Sort xsi:type="xsd:string">TransID</Sort>
</ns1:searchTransactions>
</env:Body>
</env:Envelope>
下面是请求在 PHP7 上运行完全相同的一段代码时的样子:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn:usaepay" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Body>
<ns1:searchTransactions env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<Token xsi:type="ns1:ueSecurityToken">
<ClientIP xsi:type="xsd:string">*redacted*</ClientIP>
<PinHash xsi:type="ns1:ueHash">
<HashValue xsi:type="xsd:string">*redacted*</HashValue>
<Seed xsi:type="xsd:string">*redacted*</Seed>
<Type xsi:type="xsd:string">sha1</Type>
</PinHash>
<SourceKey xsi:type="xsd:string">*redacted*</SourceKey>
</Token>
<Search enc:itemType="ns2:Map" enc:arraySize="3" xsi:type="ns1:SearchParamArray">
<item xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Field</key>
<value xsi:type="xsd:string">created</value>
</item>
<item>
<key xsi:type="xsd:string">Type</key>
<value xsi:type="xsd:string">gt</value>
</item>
<item>
<key xsi:type="xsd:string">Value</key>
<value xsi:type="xsd:string">2016-07-26</value>
</item>
</item>
<item xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Field</key>
<value xsi:type="xsd:string">created</value>
</item>
<item>
<key xsi:type="xsd:string">Type</key>
<value xsi:type="xsd:string">lt</value>
</item>
<item>
<key xsi:type="xsd:string">Value</key>
<value xsi:type="xsd:string">2016-07-26</value>
</item>
</item>
<item xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Field</key>
<value xsi:type="xsd:string">response</value>
</item>
<item>
<key xsi:type="xsd:string">Type</key>
<value xsi:type="xsd:string">eq</value>
</item>
<item>
<key xsi:type="xsd:string">Value</key>
<value xsi:type="xsd:string">A</value>
</item>
</item>
</Search>
<MatchAll xsi:type="xsd:boolean">true</MatchAll>
<Start xsi:type="xsd:integer">0</Start>
<Limit xsi:type="xsd:integer">9999</Limit>
<Sort xsi:type="xsd:string">created</Sort>
</ns1:searchTransactions>
</env:Body>
</env:Envelope>
这里是相关的PHP代码:(注意$sec)是经过编辑的安全信息。
$param = array(
array('Field' => 'created', 'Type' => 'gt', 'Value' => date('Y-m-d', strtotime('2016-07-26'))),
array('Field' => 'created', 'Type' => 'lt', 'Value' => date('Y-m-d', strtotime('2016-07-26'))),
array('Field' => 'response', 'Type' => 'eq', 'Value' => 'A')
);
$matchAll = true;
$start = 0;
$limit = 9999;
$sort = 'TransID';
$this->advClient = new SoapClient($this->adv_wsdl, array('trace' => 1, 'exceptions' => 1, 'cache_wsdl' => WSDL_CACHE_BOTH, 'soap_version' => SOAP_1_2));
$result = $this->advClient->searchTransactions($sec, $searchParam, $matchAll, $start, $limit, $sort);
我最终得到的是一个错误。我认为问题是在 PHP7 中它包装并添加了额外的“项目”标签。然而,一些功能仍然没有问题。还有其他人遇到过这个吗?
最佳答案
有趣的是,我使用了 wsdltophp.com 并为 WSDL 创建了一个类,一切正常。
关于PHP7 SoapClient 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38637941/
以下所有内容都在 Amazon EC2 中运行 几个月来我一直在使用 ExactTarget 的 API 发送电子邮件,但它在我的 QA 环境中停止工作了。以下所有代码在我的生产环境中都能正常工作。他
我需要将 PHP 的 SoapClient 与 myfile-ca.crt 一起使用。我如何告诉 SoapClient 构造函数使用客户端证书(crt 文件)? 我熟悉 php SoapClient,
我以这种方式向 WSDL 服务器发送请求: $soap = new SoapClient('WSDL_URI'); $soap->SomeFunction(array('Param1' => 123,
我正在使用带有 WSDL 的 PHP Soap 客户端来发送 SOAP 请求。 这就是我初始化 SoapClient 的方式: $options = [ "trace" => 1,
我正在拔头发。我尝试了很多不同的方法,但没有任何效果: 'localhost', 'proxy_port' => '8888' )); try { $test = new stdCl
这个问题在这里已经有了答案: Does this SOAP Fault mean what I think it means? (3 个答案) 关闭 8 年前。 除了这条错误信息,这里没什么可写的了
我正在尝试从运行该服务的同一台服务器上调用 Soap 客户端以进行测试。我的 WSDL 在:http://www.installittoday.com/api/server.php?wsdl我正在尝试
这个问题在这里已经有了答案: Does this SOAP Fault mean what I think it means? (3 个答案) 关闭 8 年前。 除了这条错误信息,这里没什么可写的了
我正在尝试从运行该服务的同一台服务器上调用 Soap 客户端以进行测试。我的 WSDL 在:http://www.installittoday.com/api/server.php?wsdl我正在尝试
我们需要连接的其中一个 WS 有 PHP 示例代码。他们为我们签署了 CSR ...所以我们现在有用于身份验证的私钥和证书。 他们建议将私钥和签名证书放入一个 .pem 文件,并在 PHP 中使用如下
我在 PhP 中有一个工作的soaprequest,我正在尝试创建一个需要相同调用的java程序,但是我真的很难找到在java中创建以下php代码的方法,我找到了许多网站解释java中的soap请求,
我创建新的 SoapClient $this->soap = new \SoapClient($this->wdls // WDLS with corect host , [ 'excepti
我有一个 Web 服务函数,它向 PHP 客户端返回一组项目。根据项目的数量,PHP 返回类型不同。如果函数返回一项,则 PHP 类型为 stdClass 如果函数返回多项,则 PHP 类型为 arr
我有一个 WSDL,它有一个需要属性的元素: Claim Element 就生成的 xml 而言,它应该如下所示:
我正在使用 SOAP 集成支付网关。当我使用 Wamp 调用服务功能时,它运行良好。但是在我的实时服务器上它给出了以下错误 - Class 'SoapClient' not found 我使用的代码是
我找到了许多关于 SoapClient 希望您如何在请求中设置属性的解释,但我就是找不到从响应中读取属性的方法。 例如,我的 SoapClient 响应中包含以下元素: ... JOWtest
当我发送以下请求时,出现“版本错误”异常。 上面的请求被转换成zend代码 $client = new zend_soap_client(null,
我是 web 服务的新手,我正在尝试使用 soapClient() 调用 web 服务,它生成的请求 XML 不是预期的格式 下面是请求XML的预期格式 MD
另一个 SOAP 问题 - 我有一个大的多维数组,当使用 print_r 时回显很好(例如,您可以看到所有数据)。当我使用 时出现问题 SOAPClient->__soapCall('Function
我最近从 PHP5.4 升级到 PHP7。天哪,这是一个变化,但这不是重点。 升级后我遇到了 SoapService 的问题。 这是我的 SoapRequest 在 PHP5.4 上的样子:
我是一名优秀的程序员,十分优秀!