0

SOAP を使用して次の XML を生成する必要があります。

                    ...
                <InternationalShippingServiceOption>
                        <ShippingService>StandardInternational</ShippingService>
                        <ShippingServiceCost currencyID="USD">39.99</ShippingServiceCost>
                        <ShippingServicePriority>1</ShippingServicePriority>
                        <ShipToLocation>CA</ShipToLocation>
                    </InternationalShippingServiceOption>
                    ...

したがって、これを行うために PHP に次の SOAP 配列があります。

$params =   array(
         'InternationalShippingServiceOption' => array(
            'ShippingService'=>'StandardInternational',
            'ShippingServiceCost'=>39.99,
            'ShippingServicePriority'=>1,
            'ShipToLocation'=>'CA',
        )
    )
$client = new eBaySOAP($session); //eBaySOAP extends SoapClient
$results = $client->AddItem($params);

XML の ShippingServiceCost タグでcurrencyID="USD"属性を生成していないことを除けば、すべてうまく機能します。どうすればいいですか?

4

2 に答える 2

0

SoapVar を使用する必要はありません。これは機能します(少なくとも私にとっては):

$params =   array(
         'InternationalShippingServiceOption' => array(
            'ShippingService'=>'StandardInternational',
            'ShippingServiceCost' => array('_' => 39.99, 'currencyID' => 'USD')
            'ShippingServicePriority'=>1,
            'ShipToLocation'=>'CA',
        )
    )

私はこの手法を PayPal SOAP API で使用しています。

于 2010-05-04T07:11:02.890 に答える
0

なぜ、あなたが尋ねてくれてうれしいです。今日これを解決しました。

$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"
);

そして、通常どおり続行します。

さらにサポートが必要な場合はお知らせください。

于 2010-02-10T01:42:40.017 に答える