0

ネイティブ php ソープ サーバーを使用して、php でソープ サービスを作成しようとしています。wsdl ファイルは既に準備されています。SOAP サービスで呼び出すことができるメソッドは、基本的に 4 つあります。リクエスト ShowRemittanceDetail の 1 つに対する入力 SOAP リクエストを以下に示します。

<soap-env:body>
    <ns1:showremittancedetailrequest>
        <username>admin</username>
        <password>pass</password>
        <refno>USA1956127848</refno>
    </ns1:showremittancedetailrequest>
</soap-env:body>

とにかく、soap リクエストにはヘッダーがなく、本文をここに示しました。SOAP リクエストの解析に問題はありません。応答は次のようになります。

<?xml version="1.0" encoding="ISO-8859-1"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns2:responseType xmlns:ns2="http://tempuri.org/response">
        <code>00</code>
        <message>Transaction does not exist or is not available</message>
        <responseBody>
            <responseStr>4</responseStr>
        </responseBody>
    </ns2:responseType>
    </soapenv:Body>
</soapenv:Envelope>

これは、参照番号を持つトランザクションがサーバーで利用できない場合に生成される特定の応答です。石鹸のご依頼をいただき、評価させていただきました。ただし、soap 応答の戻り値の型に問題があります。有効な応答を生成できません。SOAP サーバーはどのタイプの応答を返す必要がありますか?

私が試したこと:

  1. xml 文字列を返そうとしました。しかし、SOAP クライアント要求は、次のメッセージで例外をスローします。 looks like we got no xml document.
  2. SoapVar()また、同じ結果でネイティブ php を返そうとしました。

  3. SOAP サーバーのクラスマップで指定されているオブジェクト応答を返そうとしました。たとえば、上記の例ではShowRemittanceDetailResponse、同じ結果のオブジェクトを返そうとしました。( looks like we got no xml document)。

  4. DomDocument Object を返そうとしました。この場合にスローされる例外は

the encoded object does not have a responseStr property.

  1. 応答が期待するのと同じフィールドを持つ stdClass オブジェクトを返そうとしましたが、同様の結果が得られました。

私を助けてください。前もって感謝します。

4

1 に答える 1