PHP soap 结果状态正常,但没有任何项目。 SOAPUI 也提供状态 ok 和 items
PHP soap result status OK but there is no any items. SOAPUI gives status ok and items too
你能帮帮我吗-?
当我 运行 PHP 中的 SOAP 请求时,我获得了成功的结果,但结果中没有任何项目。
像下面这样...
<?php
$wsdl='https://api.n11.com/ws/SapCommissionEInvoiceDetailService.wsdl';
$soap = new SoapClient($wsdl);
$searchData = array(
"auth" => array(
"appKey" => '***********',
"appSecret" => '*******'),
"date" => '2020-06');
$result = $soap->GetSapCommissionEInvoiceDetail($searchData);
// Echo the result
echo "<pre>".print_r($result, true)."</pre>";
?>
当我通过 SOAPUI 运行 请求时,我得到了所有预期的项目。
像下面这样...
SOAPUI request and responce
你能告诉我我哪里错了吗?
当我在此 api 中调用其他方法时,我可以毫无问题地获取所有项目。但是在这个方法(GetSapCommissionEInvoiceDetail)中我遇到了一个大问题。请帮忙 - 我花了 7 天时间寻找解决方案。
更新
echo 的输出(结果)是:
stdClass 对象
(
[结果] => stdClass 对象
(
[状态] => 成功
)
[commissionInvoiceDetail] => stdClass Object
(
[commissionInvoiceDetailDataList] => stdClass Object
(
)
)
)
UPDATE_2:
我添加了 2 行来捕获错误。
echo "REQUEST:\n" . htmlentities($soap->__getLastRequest()) . "\n";
echo "Response:\n" . htmlentities($soap->__getLastResponse()) . "\n";
__getLastReques的结果是:
REQUEST: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.n11.com/ws/schemas"><SOAP-ENV:Body><ns1:GetSapCommissionEInvoiceDetailRequest><auth><appKey>*************</appKey><appSecret>**************</appSecret></auth><date>2020-06</date></ns1:GetSapCommissionEInvoiceDetailRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
getLastResponse 的结果是:
Response: <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><ns3:GetSapCommissionEInvoiceDetailResponse xmlns="" xmlns:ns3="http://www.n11.com/ws/schemas"><result><status>success</status></result><commissionInvoiceDetail><commissionInvoiceDetailDataList><commissionInvoiceItemDetailData><addOrder>0,00</addOrder><belnr>0400201769</belnr><malzemeKodu></malzemeKodu><miktar>1</miktar><orderItemId>208851060</orderItemId><orderNumber>205978544774</orderNumber><pazarlamaGeliri>0,00</pazarlamaGeliri><saticiId></saticiId><tamamlanmaTarihi>08.06.2020</tamamlanmaTarihi><transactionDDText>Satış Kargo (SPP)</transactionDDText><transactionType>SKS</transactionType><tutar>8,34</tutar><vadeFarki>0,00</vadeFarki></commissionInvoiceItemDetailData><commissionInvoiceItemDetailData><addOrder>0,00</addOrder><belnr>0400201769</belnr><malzemeKodu></malzemeKodu><miktar>1</miktar><orderItemId>208785323</orderItemId><orderNumber>205387444774</orderNumber>
所以 XML 的结果不是 NULL。这十分完美。但是echo的结果是:
stdClass Object
(
[结果] => stdClass 对象
(
[状态] => 成功
)
[commissionInvoiceDetail] => stdClass Object
(
[commissionInvoiceDetailDataList] => stdClass Object
(
)
)
)
回显结果为NULL。所以我在打印结果时犯了一些错误。求助 PLSSSSSS )))
我没有任何方法可以使用您尝试使用的 API 进行测试 - 但请尝试:
$soap = new SoapClient($wsdl, [
'features' => SOAP_USE_XSI_ARRAY_TYPE,
'exceptions' => true
]);
$soap->__setSoapHeaders([]);
可能是 PHP soap 客户端很难解释从 API 返回的 XML 数组的类型。如果不出意外,exceptions
键为真可能会提醒您注意其他问题。
你能帮帮我吗-? 当我 运行 PHP 中的 SOAP 请求时,我获得了成功的结果,但结果中没有任何项目。 像下面这样...
<?php
$wsdl='https://api.n11.com/ws/SapCommissionEInvoiceDetailService.wsdl';
$soap = new SoapClient($wsdl);
$searchData = array(
"auth" => array(
"appKey" => '***********',
"appSecret" => '*******'),
"date" => '2020-06');
$result = $soap->GetSapCommissionEInvoiceDetail($searchData);
// Echo the result
echo "<pre>".print_r($result, true)."</pre>";
?>
当我通过 SOAPUI 运行 请求时,我得到了所有预期的项目。 像下面这样...
SOAPUI request and responce
你能告诉我我哪里错了吗?
当我在此 api 中调用其他方法时,我可以毫无问题地获取所有项目。但是在这个方法(GetSapCommissionEInvoiceDetail)中我遇到了一个大问题。请帮忙 - 我花了 7 天时间寻找解决方案。
更新
echo 的输出(结果)是:
stdClass 对象 ( [结果] => stdClass 对象 ( [状态] => 成功 )
[commissionInvoiceDetail] => stdClass Object
(
[commissionInvoiceDetailDataList] => stdClass Object
(
)
)
)
UPDATE_2: 我添加了 2 行来捕获错误。
echo "REQUEST:\n" . htmlentities($soap->__getLastRequest()) . "\n";
echo "Response:\n" . htmlentities($soap->__getLastResponse()) . "\n";
__getLastReques的结果是:
REQUEST: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.n11.com/ws/schemas"><SOAP-ENV:Body><ns1:GetSapCommissionEInvoiceDetailRequest><auth><appKey>*************</appKey><appSecret>**************</appSecret></auth><date>2020-06</date></ns1:GetSapCommissionEInvoiceDetailRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
getLastResponse 的结果是:
Response: <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><ns3:GetSapCommissionEInvoiceDetailResponse xmlns="" xmlns:ns3="http://www.n11.com/ws/schemas"><result><status>success</status></result><commissionInvoiceDetail><commissionInvoiceDetailDataList><commissionInvoiceItemDetailData><addOrder>0,00</addOrder><belnr>0400201769</belnr><malzemeKodu></malzemeKodu><miktar>1</miktar><orderItemId>208851060</orderItemId><orderNumber>205978544774</orderNumber><pazarlamaGeliri>0,00</pazarlamaGeliri><saticiId></saticiId><tamamlanmaTarihi>08.06.2020</tamamlanmaTarihi><transactionDDText>Satış Kargo (SPP)</transactionDDText><transactionType>SKS</transactionType><tutar>8,34</tutar><vadeFarki>0,00</vadeFarki></commissionInvoiceItemDetailData><commissionInvoiceItemDetailData><addOrder>0,00</addOrder><belnr>0400201769</belnr><malzemeKodu></malzemeKodu><miktar>1</miktar><orderItemId>208785323</orderItemId><orderNumber>205387444774</orderNumber>
所以 XML 的结果不是 NULL。这十分完美。但是echo的结果是:
stdClass Object
( [结果] => stdClass 对象 ( [状态] => 成功 )
[commissionInvoiceDetail] => stdClass Object
(
[commissionInvoiceDetailDataList] => stdClass Object
(
)
)
)
回显结果为NULL。所以我在打印结果时犯了一些错误。求助 PLSSSSSS )))
我没有任何方法可以使用您尝试使用的 API 进行测试 - 但请尝试:
$soap = new SoapClient($wsdl, [
'features' => SOAP_USE_XSI_ARRAY_TYPE,
'exceptions' => true
]);
$soap->__setSoapHeaders([]);
可能是 PHP soap 客户端很难解释从 API 返回的 XML 数组的类型。如果不出意外,exceptions
键为真可能会提醒您注意其他问题。