简体   繁体   English

通过Soap WSDL发送数组的问题-PHP

[英]Problem with sending array via Soap WSDL - PHP

I have problem with send SOAP query. 我在发送SOAP查询时遇到问题。 For some reason my code [numerNadania] isn't good. 由于某种原因,我的代码[numerNadania]不好。 I guess it's some problem with structure. 我想这是结构上的问题。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e=http://e-nadawca.poczta-polska.pl 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header/>
    <soapenv:Body>
        <e:addReklamacje>
            <reklamowanaPrzesylka 
            dataNadania="2018-05-22" 
            urzadNadania="260578" 
            powodReklamacjiOpis="TEST TEST TEST" 
odszkodowanie="0" oplata="0" oczekiwaneOdszkodowanie="0">
                <przesylka 
                    guid="262A34BA2C1111116237B659B312F5EB" 
                    numerNadania="00159007738099827991"
                    opis="TEST" 
                    planowanaDataNadania="2018-05-22"
                    xsi:type="e:przesylkaBiznesowaType"/>
            <powodReklamacji 
idPowodGlowny="4" 
powodGlownyOpis="TEST TEST TEST">
                    <powodSzczegolowy 
idPowodSzczegolowy="9" powodSzczegolowyOpis="TEST TEST TEST"/>
            </powodReklamacji>
            </reklamowanaPrzesylka>
        </e:addReklamacje>
    </soapenv:Body>
</soapev:Envelope>
    $options["login"] = "***";
    $options["password"] = "***";
    $options["soap_version"] = SOAP_1_2;

    $wsdl = 'en.wsdl';

    try {
        $client = new SoapClient($wsdl,$options);
    }

    catch(Throwable $e) {
        echo 'Wystąpił problem z połączniem API';
    }

    $params = array(
        'reklamowanaPrzesylka' => array (
            'przesylka' => array (
                'guid' => getGuid(),
                'numerNadania' => $id,
            ),
            'powodReklamacji' => "Czas dostawy",
        )
    );

    $problem = $client->addReklamacje($params);
stdClass Object ( [errorNumber] => 13250 [errorDesc] => Numer nadania dla składanych reklamacji jest wymagany [guid] => F8CF816CDF4DD8151116C0EE340C4031 )

Numer nadania dla składanych reklamacji jest wymagany - Send number is required [TRANSLATE] Numer nadania dlaskładanychreklamacji jest wymagany-需要发送号码[翻译]

In the past i have been using wsdl2php converters to create client code that resolves most of this type of issues. 过去,我一直使用wsdl2php转换器来创建解决大多数此类问题的客户端代码。

See this one for example: https://github.com/rquadling/wsdl2php 例如,请参阅此示例: https : //github.com/rquadling/wsdl2php

They all work pretty much the same, you need to provide ?wsdl endpoint, run script and it will produce client code and output it in to file. 它们的工作原理几乎相同,您需要提供?wsdl端点,运行脚本,它将生成客户端代码并将其输出到文件中。 Than you can include file and use generated classes and methods. 比您可以包含文件并使用生成的类和方法。

Hope this helps. 希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM