SOAP zu XML -Konvertierung in PHP
Frage
Ich muss das folgende XML mit Seife generieren:
...
<InternationalShippingServiceOption>
<ShippingService>StandardInternational</ShippingService>
<ShippingServiceCost currencyID="USD">39.99</ShippingServiceCost>
<ShippingServicePriority>1</ShippingServicePriority>
<ShipToLocation>CA</ShipToLocation>
</InternationalShippingServiceOption>
...
Ich habe also das folgende Seifenarray in PHP, um dies zu tun:
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost'=>39.99,
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
$client = new eBaySOAP($session); //eBaySOAP extends SoapClient
$results = $client->AddItem($params);
Alles funktioniert großartig, außer dass ich das nicht generiere CurrencyId = "USD" Attribut im ShippingServiceCost -Tag im XML. Wie mache ich das?
Lösung
Sie müssen SOAPVAR nicht verwenden. Das funktioniert (zumindest für mich):
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost' => array('_' => 39.99, 'currencyID' => 'USD')
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
Ich verwende diese Technik mit der PayPal -Seifen -API.
Andere Tipps
Ich bin froh, dass du gefragt hast. Ich habe das heute gerade gelöst.
$shippingsvccostwithid = new SoapVar(array('currencyID' => $whatever),SOAP_ENC_OBJECT, 'ShippingServiceCost', 'https://your.namespace.here.com/');
$params = array("InternationalShippingServiceOption" => array(
"ShippingService" => "StandardInternational",
"ShippingServiceCost" => $shippingsvccostwithid,
"ShippingServicePriority" => 1,
"ShipToLocation" => "CA"
);
Und dann wie gewohnt fort.
Bitte lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow