2014-02-09 3 views
0

Я реализую веб-сервис для одного из моих клиентов, и для этого метода требуются 3 параметра (имя пользователя, пароль) и пустой идентификатор GUID, который должен быть передан в качестве ссылки. Я пробовал несколько вариантов, но не могу понять, в чем проблема. Есть идеи?Параметры вызова SOAP для PHP для GUID

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope 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/"> 
    <soap:Body> 
    <LogonAndRequestToken xmlns=""> 
     <username>string</username> 
     <password>string</password> 
     <guid>guid</guid> 
    </LogonAndRequestToken> 
    </soap:Body> 
</soap:Envelope> 

Я использую следующий код на данный момент:

 //$guid = "00000000-0000-0000-0000-000000000000"; 
     if($this->utilities->ping()->PingResult->ErrorCode == 0) { 
      pr($this->utilities->LogonAndRequestToken(array("username" => "username", "password" => "pass", "guid" => 00000000-0000-0000-0000-000000000000))); 
     } 
     exit; 

пр() является сокращенной функцией print_r(), и я попробовал GUID как сейчас, а также закомментирована версия , В версии теперь я получаю исключение, что GUID не является правильным форматом, а закомментированный ответ дает ответ от сервера, но указывает, что существует ошибка 10001 (техническая ошибка и я должен связаться со службой поддержки). Как я убежден, правильное имя пользователя и пароль я уверен, что я что-то упустил. Любая помощь будет оценена благодарю вас!

Вот еще информация:

Из описания услуг:

<s:complexType> 
     <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/> 
      <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/> 
      <s:element minOccurs="1" maxOccurs="1" name="guid" type="s1:guid"/> 
     </s:sequence> 
</s:complexType> 

Я также попробовал следующий вариант: массива (..., "справы" => & $ справ)

+0

GUID, не является действительным. Вам нужно указать версию и вариант используемого алгоритма guid. Не существует «default», пустой указатель, который вы могли бы передать. Либо это руководство, либо нет. Вы пытались передать пустую строку? – hek2mgl

+0

Я пробовал пустую строку и ссылаюсь на пустую переменную: в документе XML есть ошибка (2, 242). ---> System.FormatException: формат нераспознанного руководства. на System.Guid.GuidResult.SetFailure – mauzilla

+0

Вы пытались создать guid? например: http://php.net/manual/de/function.uniqid.php#107512? – hek2mgl

ответ

0

Я исправил его, внедряя плагин PHP COM и используя функцию com_create_guid.

0

Вы также можете создать Guid РНР, как это:

public static function GenerateGuid() 
{ 
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
     // 32 bits for "time_low" 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
     // 16 bits for "time_mid" 
     mt_rand(0, 0xffff), 
     // 16 bits for "time_hi_and_version" 
     mt_rand(0, 0x0fff) | 0x4000, 
     // 16 bits, 8 bits for "clk_seq_hi_res", 
     // 8 bits for "clk_seq_low" 
     mt_rand(0, 0x3fff) | 0x8000, 
     // 48 bits for "node" 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
    ); 
} 

http://www.php.net/manual/en/function.uniqid.php#94959

Смежные вопросы