SOAP à la conversion de XML en PHP
Question
Je dois générer le code XML suivant avec SOAP:
...
<InternationalShippingServiceOption>
<ShippingService>StandardInternational</ShippingService>
<ShippingServiceCost currencyID="USD">39.99</ShippingServiceCost>
<ShippingServicePriority>1</ShippingServicePriority>
<ShipToLocation>CA</ShipToLocation>
</InternationalShippingServiceOption>
...
J'ai donc le tableau ci-dessous SOAP en PHP pour faire ceci:
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost'=>39.99,
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
$client = new eBaySOAP($session); //eBaySOAP extends SoapClient
$results = $client->AddItem($params);
Tout fonctionne très bien, sauf que je ne suis pas générer les currencyID = "USD" attribut dans la balise ShippingServiceCost dans le fichier XML. Comment puis-je faire?
La solution
Vous n'avez pas besoin d'utiliser SoapVar. Cela fonctionne (pour moi au moins):
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost' => array('_' => 39.99, 'currencyID' => 'USD')
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
J'utilise cette technique avec l'API SOAP de PayPal.
Autres conseils
Pourquoi, je suis heureux que vous ayez demandé. Je viens de résoudre aujourd'hui.
$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"
);
Et puis continuer normalement.
S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'aide.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow