使用PHPSOAP for DHL express soap服务器时是否可以发送重复的密钥

使用PHPSOAP for DHL express soap服务器时是否可以发送重复的密钥,php,soap,Php,Soap,我需要将几个ExportedLineItems发送到DHL EXPRESS soap服务器,但很明显,它们拒绝了发送重复数组密钥的常用方法。 看看水务署,这应该是可能的 当我通过以下阵列时(删除) 上面的代码得到正确的结果。但我需要传递多个ExportLineItem,所以我使用了以下数组 $client = new SoapClient(URL_ADDR, array("trace" => 1, "exception" => 1, 'use

我需要将几个ExportedLineItems发送到DHL EXPRESS soap服务器,但很明显,它们拒绝了发送重复数组密钥的常用方法。 看看水务署,这应该是可能的 当我通过以下阵列时(删除)

上面的代码得到正确的结果。但我需要传递多个ExportLineItem,所以我使用了以下数组

$client = new SoapClient(URL_ADDR, array("trace" => 1, "exception" => 1,  'use' => SOAP_LITERAL));
$client->__setSoapHeaders(Array(new WsseAuthHeader(USERNAME, PASSWORD)));   
//... array abrevation
'ExportDeclaration' => [
                    'InvoiceDate' => date("Y-m-d"),
                    'InvoiceNumber' => '123456_invoice',
                    'ExportLineItems' => [
                        'ExportLineItem' =>[ 
                            0 => [
                                'ItemNumber' => '1',
                                'Quantity' => '1',
                                'QuantityUnitOfMeasurement' => 'KG',
                                'ItemDescription' => 'X15_01',
                                'UnitPrice' => '239',
                                'NetWeight' => '0.25',
                                'GrossWeight' => '0.3', 
                            ],
                            1 => [
                                'ItemNumber' => '2',
                                'Quantity' => '2',
                                'QuantityUnitOfMeasurement' => 'KG',
                                'ItemDescription' => 'X15_02',
                                'UnitPrice' => '123',
                                'NetWeight' => '0.24',
                                'GrossWeight' => '0.34',    
                            ]
                        ]   
                    ]
                ],
//...
$result = $client->createShipmentRequest($data);

这次我收到一个错误“Encoding:对象没有“ItemNumber”属性”。我真的不知道下一步该怎么办。

你试过问DHL如何处理这个问题吗?在meHello Nico看来,这并不是一个纯粹的编程问题。谢谢你阅读我的问题。有一点值得注意的是,一些软件(wsdl中的天气或我使用PHPSOAP实现的方式)存在错误。我已经向他们的API发送了纯XML,并收到了良好的结果。这意味着这是可能的。在发布我的解决方案之前,我希望有人能提供真正的解决方案,按照预期发送数组,而不是像我那样发送纯xml字符串。因为这不是一个好的解决办法。
$client = new SoapClient(URL_ADDR, array("trace" => 1, "exception" => 1,  'use' => SOAP_LITERAL));
$client->__setSoapHeaders(Array(new WsseAuthHeader(USERNAME, PASSWORD)));   
//... array abrevation
'ExportDeclaration' => [
                    'InvoiceDate' => date("Y-m-d"),
                    'InvoiceNumber' => '123456_invoice',
                    'ExportLineItems' => [
                        'ExportLineItem' =>[ 
                            0 => [
                                'ItemNumber' => '1',
                                'Quantity' => '1',
                                'QuantityUnitOfMeasurement' => 'KG',
                                'ItemDescription' => 'X15_01',
                                'UnitPrice' => '239',
                                'NetWeight' => '0.25',
                                'GrossWeight' => '0.3', 
                            ],
                            1 => [
                                'ItemNumber' => '2',
                                'Quantity' => '2',
                                'QuantityUnitOfMeasurement' => 'KG',
                                'ItemDescription' => 'X15_02',
                                'UnitPrice' => '123',
                                'NetWeight' => '0.24',
                                'GrossWeight' => '0.34',    
                            ]
                        ]   
                    ]
                ],
//...
$result = $client->createShipmentRequest($data);