2

nu soap クライアント経由で SOAP Web サービスを呼び出すと問題が発生します。「Storm_r1.1-Adarna」ツールを使用して試してみると、正常に実行されましたが、php コードでは実行されませんでした。次の詳細を参照してください。

リクエスト メッセージの例は次のようになります。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:ns="http://www.kiala.com/schemas/psws/1.0">
    <soapenv:Header/>
    <soapenv:Body>
        <ns:createOrder reference="260778">
            <identification>
                <sender>5390a7006cee11e0ae3e0800200c9a66</sender>
                <hash>831f8c1ad25e1dc89cf2d8f23d2af...fa85155f5c67627</hash>
                <originator>VITS-STAELENS</originator>
            </identification>
            <delivery>
                <from country="ES" node=""/>
                <to country="ES" node="0299"/>
            </delivery>
            <parcel>
                <description>Zoethout thee</description>
                <weight>0.100</weight>
                <orderNumber>10K24</orderNumber>
                <orderDate>2012-12-31</orderDate>
            </parcel>
            <receiver>
                <firstName>Gladys</firstName>
                <surname>Roldan de Moras</surname>
                <address>
                    <line1>Calle General Oraá 26</line1>
                    <line2>(4º izda)</line2>
                    <postalCode>28006</postalCode>
                    <city>Madrid</city>
                    <country>ES</country>
                </address>
                <email>gverbruggen@kiala.com</email>
                <language>es</language>
            </receiver>
        </ns:createOrder>
    </soapenv:Body>
</soapenv:Envelope>

私のコード:

    $orderId = time();
    $client  = new nusoap_client('http://packandship-ws.kiala.com/psws/order?wsdl',  true);

    $params = array(
        'reference' => $orderId,
        'identification' => array(
            'sender' => param('kiala', 'sender_id'),
            'hash' => hash('sha512', $orderId . param('kiala', 'sender_id') . param('kiala', 'password')),
        ),
        'delivery' => array(
            'from' => array(
                'country' => 'ES',
                'node' => '',
            ),
            'to' => array(
                'country' => 'ES',
                'node' => '0299'
            ),
        ),
        'parcel' => array(
            'description' => 'Endado',
            'weight' => 0.200,
            'orderNumber' => $orderId,
            'orderDate' => date('Y-m-d')
        ),
        'receiver' => array(
            'firstName' => 'Customer First Name',
            'surname' => 'Customer Sur Name',
            'address' => array(
                'line1' => 'Line 1 Adress',
                'line2' => 'Line 2 Adress',
                'postalCode' => 28006,
                'city' => 'Madrid',
                'country' => 'ES',
                ),
            'email' => 'test.ceres@yahoo.com',
            'language' => 'es'
        )
    );
    $result = $client->call('createOrder', $params);
    var_dump($result);die;

そしてエラー:

array
  'faultcode' => string 'ns2:Client' (length=10)
  'faultstring' => string 'Invalid request sent' (length=20)
  'detail' => 
    array
      'orderFault' => 
        array
          'faultCode' => string 'INVALID_REQUEST' (length=15)
          'message' => string ''orderRequest' tag is missing mandatory 'reference' attribute' (length=61)

nusoap で Web サービスを呼び出すときに、リクエスト パラメータに問題がある可能性はありますか?

<ns:createOrder reference="260778">
4

1 に答える 1

1

リクエストreferenceに属性がありません。

referenceあなたのには何も表示されません$params

あなたのphpコードは正しいですか?

于 2013-07-17T04:00:46.237 に答える