2012-06-29 4 views
1

Я работаю с SOAP-приложением, которое запрашивает некоторые параметры с типом GUID. Я не совсем уверен, что все это значит.Работа с GUID-типом: PHP

Я нашел это для создания GUID-й в PHP:

function getGUID(){ 
    if (function_exists('com_create_guid')){ 
     return com_create_guid(); 
    } else { 
     mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up. 
     $charid = strtoupper(md5(uniqid(rand(), true))); 
     $hyphen = chr(45);// "-" 
     $uuid = chr(123)// "{" 
      .substr($charid, 0, 8).$hyphen 
      .substr($charid, 8, 4).$hyphen 
      .substr($charid,12, 4).$hyphen 
      .substr($charid,16, 4).$hyphen 
      .substr($charid,20,12) 
      .chr(125);// "}" 
     return $uuid; 
    } 
} 

Но я не знаю, как это работает, когда я пытаюсь передать в качестве параметра. Вот пример того, как мне нужно использовать:

$option=array('trace'=>1); 
$url = "http://example.com/admin.asmx?WSDL"; 
$client = new SoapClient($url, $option); 
$params = array(
    'consumerid' => '1234', 
    'userName'  => '1234', 
    'password'  => '1234', 
    'adminDomain' => 'admin.example.com', 
    'SubscriberID' => '1234', 
    'orderID'  => '22147'); /* <- This value needs to be of the type GUID */ 

$result = $client->getOrderDetail($params); 

Я могу создавать новую GUIDs, но я не знаю, как связать значение с ним. Может ли кто-нибудь предложить объяснение?

ответ

0

вы имели в виду:

$option=array('trace'=>1); 
$url = "http://example.com/admin.asmx?WSDL"; 
$client = new SoapClient($url, $option); 

# get guid and store in variable 
$guid = getGUID(); 

$params = array(
    'consumerid' => '1234', 
    'userName'  => '1234', 
    'password'  => '1234', 
    'adminDomain' => 'admin.example.com', 
    'SubscriberID' => '1234', 
    'orderID'  => $guid); # now use that guid here 

$result = $client->getOrderDetail($params); 
+0

уверен, но как я могу получить значение я ищу, чтобы идти вместе с этой переменной $ Guid? Потому что, когда я делаю подсказку и просто повторяю ее, она меняется каждый раз. – atb

+0

@alexthebake: Какое значение вы ищете именно? Функция 'getGUID' уже каждый раз возвращает другое значение, и guid должен быть уникальным. – Blaster

+0

ладно, ну тогда я просто смущен. Потому что мне нужен метод getOrderDetail, чтобы вернуть детали заказа, который я указываю на основе orderID. Но если тип для orderID должен быть GUID, я никогда не могу указать идентификатор orderID, который я хочу. Есть ли способ придать значение руководству? – atb