Веб-сервис Microsoft CRM 3.0 через класс PHP Soap - PullRequest
6 голосов
/ 22 октября 2009

Я хотел бы создать новые контакты и ведет, используя php. Я не могу понять, как вызывать методы веб-службы mscrm 3.

Класс php soap кажется довольно простым в использовании. Я могу подключиться и аутентифицироваться в веб-сервисе crm и получить список доступных функций, однако я не уверен, как их вызывать.

Я видел примеры для mscrm 4.0, которые, похоже, содержат массу XML, включая мыльные заголовки и конверты.

У меня сложилось впечатление, что использование класса мыла обходит это и напишет для меня все лишние xml, поэтому все, что мне нужно сделать, это вызвать функцию с массивом параметров?

Я здесь совершенно не прав?

Кто-нибудь делал это с mscrm 3, который может предоставить некоторый пример кода, или, возможно, дал мне несколько советов о том, как правильно вызывать метод Create ()?

Ответы [ 4 ]

3 голосов
/ 28 октября 2009

Я смог заставить это работать, используя Nusoap и после создания XML-сообщения в виде последовательности строк, используя метод send вместо вызова. Теперь это работает, как и ожидалось. Казалось, что использование метода вызова возвращает XML, отличный от того, что требовалось веб-службой ms crm 3.

2 голосов
/ 28 февраля 2010

Я также изо всех сил пытался заставить Dynamics CRM SOAP работать с PHP, но через некоторое время мне удалось заставить его работать; http://www.ifc0nfig.com/working-with-microsoft-dynamics-crm-4-0-soap-interface-with-php-and-nusoap/ - Вы можете скачать созданный мной небольшой класс, который может пригодиться:)

2 голосов
/ 26 ноября 2009
<code>require_once ('/var/mtp/lib/vendor/nusoap/lib/nusoap.php');

$login ='domain\username';
$pass ='password';
$useCURL = true;

$client = new nusoap_client('http://server:5555/mscrmservices/2006/crmservice.asmx?wsdl', 'wsdl');
$client->setCredentials($login, $pass, 'ntlm');
$client->setUseCurl($useCURL);
$client->useHTTPPersistentConnection();
$client->soap_defencoding = 'UTF-8';

$err = $client->getError();
if ($err) {
    echo '<h2>Constructor error</h2><pre>' . $err . '
'; echo '

Debug

' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '
'; выход(); } $ soapHeader = ''. ''. '00000000-0000-0000-0000-000000000000'. </ Мыло: Header> '; $ soapBody = ''. ''. ' 2408c7dc-c0a3-dd11-b3cd-001a4bd3009a '. ' Фред '. ' Bloggs '. ''. </ Мыло: Body> '; $ xml = '<? xml version = "1.0" encoding = "utf-8"?>'. «<мыло: конверт». 'xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"'. 'xmlns: xsd = "http://www.w3.org/2001/XMLSchema"'. 'xmlns: soap = "http://schemas.xmlsoap.org/soap/envelope/">'. $ soapHeader. $ soapBody. </ Мыло: Envelope> '; // SOAP вызов $ result = $ client-> send ($ xml, 'http://schemas.microsoft.com/crm/2006/WebServices/Create'); //результат if ($ client-> fault) {// проверить наличие ошибки echo '

Ошибка:'; print_r ($ результат); echo '

'; } еще {// не виноват $ err = $ client-> getError (); if ($ err) {// ошибка echo 'Ошибка:'. $ err. ''; echo "\ n \ n # # # # # # Request # # # # # # # # \ n"; var_dump ($ client-> запрос); echo "\ n \ n # # # # # # Response # # # # # # # \ n"; var_dump ($ client-> ответ); } else {// показать результат print_r ($ результат); } }
2 голосов
/ 22 октября 2009

Любой приличный инструментарий SOAP автоматически выплюнет правильный XML. Проверьте этого парня:

http://us2.php.net/xmlrpc_encode_request

...