2012-08-31 2 views
6

У меня есть WSDL,PHP мыло MaxOccurs = неограниченный

<xs:complexType name="merchantDetails"><xs:sequence> 
<xs:element maxOccurs="unbounded" minOccurs="0" name="did" nillable="true" type="xs:string"/> 
<xs:element maxOccurs="unbounded" minOccurs="0" name="flowid" nillable="true" type="xs:string"/> 

Я пытаюсь отправить массив следующим образом (var_dump).

object(merchantDetails)#3 
    ["did"]=> 
    array(1) { 
    [0]=> 
    string(8) "81985801" 
    } 
    ["flowid"]=> 
    array(1) { 
    [0]=> 
    string(16) "MerchantMOTOMID1" 
    } 

Но __getLastRequest выход не показывает метки для сделал или flowID.

Пожалуйста, помогите в случае отправки несвязанных данных.

+4

Вам нужно чтобы предоставить дополнительную информацию - WSDL может помочь, а также ваш код отправки и точную ошибку, которую вы получаете – ernie

ответ

0

установить MaxOccurs как ограниченная

быть точным, пожалуйста, напишите свой полный исходный код

1

После следует сделать трюк, если я правильно читать WSDL-инструкцию. Проводка желаемая SOAP-запрос будет очень полезно ...

$param = array(
    'did'=>'81985801', 
    'flowid'=>'MerchantMOTOMID1' 
) 


$soap_instance->merchantDetails($param); 

или

$param = new stdObject(); 
$param->did = '81985801'; 
$param->flowid = 'MerchantMOTOMID1'; 

$soap_instance->merchantDetails($param); 

либо один из них не были испытаны ...

0
//You should try to send like this 

$arOperationFilter = array(
    'did' => array('81985801','81985802','...') 
); 


$client = new SoapClient($your_url, $arSoapOptions); 

$result = $client->yourSoapOperation($arOperationFilter); 
+2

Привет, Сергей. Спасибо за ваш вклад, но, пожалуйста, объясните, в чем проблема, и почему ваш код решает его. Кодовые ответы не поощряются. – Vincent

+0

** Хороший ответ ** всегда будет объяснять, что было сделано и почему это было сделано таким образом, не только для OP, но и для будущих посетителей SO. –

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