Как получить список клиентов от Microsoft AX, используя веб-сервис Microsoft AX на PHP? - PullRequest
0 голосов
/ 22 мая 2019

Я выполнил настройку веб-служб в AX. Теперь я хочу использовать этот веб-сервис для отображения клиентов на портале PHP. Пожалуйста, ознакомьтесь с кодом ниже.

$soapUrl = "http://example.com/MicrosoftDynamicsAXAif50/woocommerceservice.svc?wsdl"; 
$soapUser = "xxxxxxxxxxxxxxxxx";  
$soapPassword = "xxxxxxxx"; 

$xml_post_string = '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">                        
                        <s:Header>
                            <CallContext xmlns="http://schemas.microsoft.com/dynamics/2010/01/datacontracts">
                            <Company>001</Company>
                            <Language>en-us</Language>
                            </CallContext>
                        </s:Header>
                        <s:Body>
                            <WooCommerceServiceReadRequest xmlns="http://tempuri.org">
                                <EntityKeyList xmlns = "http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList">                                 
                                </EntityKeyList>
                            </WooCommerceServiceReadRequest>                            
                        </s:Body>
                    </s:Envelope>';   

$headers = array(
            "Content-type: text/xml;charset=\"utf-8\"",
            "Accept: text/xml",
            "Cache-Control: no-cache",
            "Pragma: no-cache",
            "SOAPAction: http://tempuri.org/WooCommerceService/read", 
            "Content-length: ".strlen($xml_post_string),
        ); 

$url = $soapUrl;

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $soapUser.":".$soapPassword); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch); 
$info = curl_getinfo($ch);
if (curl_error($ch)) {
    $error_msg = curl_error($ch);
}
curl_close($ch);
print_r($response);

Возвращает «Original001». Пожалуйста, проверьте и совет.

Заранее спасибо.

...