【问题标题】:How to consume NAV Dynamics WS in PHP?如何在 PHP 中使用 NAV Dynamics WS?
【发布时间】:2021-07-22 11:43:34
【问题描述】:

我需要将 Navision 连接到我的 PHP 应用程序。我尝试使用在论坛中阅读过的不同方式,但它们都不起作用。我不知道我是否应该使用 SOAP、cURL 或其他,有人可以指导我吗?

编辑:

我已经尝试了以下代码,它也不起作用。

$opts = array(
'http' => array(
    'user_agent' => 'PHPSoapClient'
)
);
$context = stream_context_create($opts);

$client = new SoapClient('http://URL:7047/DynamicsNAV/WS/COMPANY/Page/mypage?wsdl/', ['trace' => 1, 'cache_wsdl' => WSDL_CACHE_NONE, 'stream_context' => $context ,'user_agent' => 'USERAG', 'soap_version'   => SOAP_1_2]);
$security = array(
    'UserName' => array(
        'UserName'=>'COMPANY\MYUSER',
        'Password'=>'mypass',
    )
);
$client->__getLastResponse();
$header = new SoapHeader('ChannelFactory','Credentials',$security, false);
$client->__setSoapHeaders($header);

$checkVatParameters = array(
    'level' => '01');

$result = $client->checkVat($checkVatParameters);
print_r($result);

try {
    $ret = $client->getAllItm();
    print_r($ret);
}catch(Exception $e){
    echo $e->getMessage();
}

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从 myurl 加载

【问题讨论】:

  • 到目前为止您尝试过什么?请出示您的代码。快速的 Google 搜索将this 作为第一个结果。请阅读here,了解在此处提问时需要您进行多少研究工作
  • 在我问之前我做了很多谷歌搜索。目前我没有固定的代码,因为我尝试了不同的方式(包括你发给我的那个)。最重要的是,我需要知道使用什么,我尝试过 SOAP、NTMLSoap、cURL... :(
  • 至少告诉你使用的是哪个版本的导航。
  • 这是旧的但应该仍然可以工作stackoverflow.com/a/25357700/1820340 使用soapUI 连接到导航。它将为您创建示例请求。您将能够看到它正在执行什么请求,然后使用任何可以执行 http 请求并处理在 nav 实例上设置的适当身份验证的工具从字面上重新创建它们。
  • @Mak Sim 我试过了,还是不行。

标签: php web-services soap webservice-client navision


【解决方案1】:
    $.soap({
        url: "http://url:7047/DynamicsNAV/WS/COMPANY/Page/ws_myws",
        data: {
            user: "user",
            pass: "pass"
        },
        dataType: "jsonp",
    jsonpCallback: "jsonp_callback",
    crossDomain: true,

        HTTPHeaders: {
            'Content-Type': 'application/xml',
            'Server-Protocol':'SOAP'
        },
        success: function (response){
            response = $.format(response.toString(), {method: 'xml' });
            $("#output").text(response);
        }
    })

回应: http://url/WS/COMPANY/Page/ws_myws net::ERR_CONNECTION_TIMED_OUT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多