我正在尝试开发一个应用程序,我想在其中获取magento订单和客户详细信息。
我编写了以下代码来使用SOAP API:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// require('vendor/zendframework/zend-server/src/Client.php');
// require('vendor/zendframework/zend-soap/src/Client.php');
// require('vendor/zendframework/zend-soap/src/Client/Common.php');
$wsdlurl = 'http://192.168.0.94/magento2/index.php/soap/default?wsdl&services=salesOrderRepositoryV1';
$token = 'rsgd11vmhelufr2a2jnk023bu0s3nk35';
$opts = ['http' => ['header' => "Authorization: Bearer ".$token]];
$context = stream_context_create($opts);
//$arguments =
$serviceArgs = array('searchCriteria'=>
array('filterGroups' =>
array ('filters' =>
array('field' =>'increment_id',
'value' => '000000002' ,
'condition_type' => 'eq')
)
)
);
$soapClient = new SoapClient($wsdlurl, ['version' => SOAP_1_2, 'context' => $context]);
// $soapClient->setSoapVersion(SOAP_1_2);
// $soapClient->setStreamContext($context);
$result = $soapClient->__getFunctions();
echo "<pre>"; print_r($result);
?>
如果,我取消注释评论行,那么它就会罚款。但是,我想在Magento之外使用这段代码。
所以我不想使用未注释的代码。
通过使用上面的代码,我得到以下输出:
Array
(
[0] => SalesOrderRepositoryV1GetResponse salesOrderRepositoryV1Get(SalesOrderRepositoryV1GetRequest $messageParameters)
[1] => SalesOrderRepositoryV1GetListResponse salesOrderRepositoryV1GetList(SalesOrderRepositoryV1GetListRequest $messageParameters)
[2] => SalesOrderRepositoryV1SaveResponse salesOrderRepositoryV1Save(SalesOrderRepositoryV1SaveRequest $messageParameters)
)
任何人都可以帮我从列表中使用此方法.我无法使用这种方法。如果有人有解决方案,请告诉我。
最新回答
- 2019-12-51 #
我可以看到多行都被注释掉了,很难理解你特别想问哪些行.以下是我对最后两行注释的想法:
我正在使用Magento CE 2.2.0.创建新的SoapClient对象时,请勿使用键"context".即使用户名,密码和令牌有效,它也会响应"未授权".而是使用"stream_context"作为键,并使用令牌将上下文对象存储在其值中。
至少,这是我的情况,也许这对你的情况也有帮助。
否则,请指定行和确切的问题,因为我可以看到__getFunctions端点正常工作。