Nueva pregunta

Pregunta:

Fecha: 02-08-2018 04:31:44 (En Español)

¿Por que obtengo SOAP-ERROR: Encoding: object has not 'tax', en wdsl con complextype anidados?[No resuelta]

Tengo que consumir un web services SOAP con PHP y obtengo el error del título.
La estructura (parcial) del wsdl es la siguiente
<xs:element name="Obligations" type="tns:ObligationsType"/>
<xs:complexType name="ObligationsType">
<xs:sequence>

<xs:element maxOccurs="99" name="Taxes" type="tns:TaxesType"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="TaxesType">
<xs:sequence>
<xs:element name="tax">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:maxInclusive value="9999"/>
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="amount">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="0.01"/>
<xs:maxInclusive value="9999999999.99"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>

El array asociativo que envío:
    $params = array(
            'token' => $TOKEN,
            'sign' => $SIGN,
            'paymentEntity' => 1001,
            'form' => array(
                'formNumber' => 6042,
                'idPaymentType' => 951,
                'Obligations' => array (
                                     array( 
                                         'Taxes' => array(
                                                        'tax' => 6041,
                                                        'amount' => 602.0 
                                                         )
                                           )
                                        )
                             )              
                );

Intenté hacerlo con clases y obtengo el mismo error. El problema está desde el objeto Obligations.
Intenté anidando así:
'Obligations' =>array ('Taxes' =>array('tax'=> 1,'amount'=> 1.0)) obtengo Unrecognized field Obligations

'Obligations' =>array ('tax'=> 1,'amount'=> 1.0) obtengo object has no 'Taxes' property

'Obligations' =>array (array('Taxes' =>array('tax'=> 1,'amount'=> 1.0))) obtengo object has no 'tax' property

'Obligations' =>array ('Taxes' =>array('tax'=> 1)) obtengo object has no 'amount' property

'Obligations' =>array ('Taxes' =>array('amount'=> 1)) obtengo object has no 'tax' property

Agradecería cualquier sugerencia. Saludos
Etiquetas: Array PHP - PHP - SOAP - SoapClient Votos: 0 - Respuestas: 2 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 03-08-2018 09:03:06 Hola que tal, y si pruebas con esta secuencia:

    
    $params = [
    	'token'	=>	'eltoken',
    	'sign'	=>	'sign',
    	'paymentEntity'	=>	1001,
    	'form'	=>	[
    		'formNumber'	=>	123456,
    		'idPaymentType'	=>	654,
    		'Obligations'	=>	[
    			[
    				'Taxes'  => [
    					'TaxesType'	=>	[
    						'tax'    => 6041,
    						'amount' => 602.0
    					]
    				]
    			]
    		]
    	]
    ];
    
    


    Eso debido a que luego de Taxes viene TaxesType y de allí tax y amount
      Votos: 0 - Link respuesta
     
  • Fecha: 06-08-2018 02:27:41 Gracias, probé de esta manera pero sigo sin resolverlo   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión