私はこのような構造でリクエストを取得しようとしています:ここでPHP SOAPクライアント
<SOAP-ENV:Body>
<ns1:getCreditReportTypes>
<reportTypeRequest>
<reportParams xsi:type="ns1:personCreditReportParams">
<personId>4</personId>
<consentConfirmed>true</consentConfirmed>
</reportParams>
</reportTypeRequest>
</ns1:getCreditReportTypes>
</SOAP-ENV:Body>
は私のPHPコードです:
$obj = new \stdClass();
$obj->personId = 4;
$obj->consentConfirmed = true;
$data = new \SoapVar($obj, SOAP_ENC_OBJECT, "personCreditReportParams", $namespace, "reportParams");
$res = $this->client->getCreditReportTypes(new \SoapParam($data,"reportTypeRequest"));
しかし、PHPは無効なXMLを生成:
を<SOAP-ENV:Body>
<ns1:getCreditReportTypes xsi:type="ns1:personCreditReportParams">
<consentConfirmed>true</consentConfirmed>
<personId>4</personId>
</ns1:getCreditReportTypes>
</SOAP-ENV:Body>
オブジェクトウェイで有効なXMLを作成するにはどうすればよいですか?
答えをいただきありがとうございますが、動作しませんでした。私はこれが継承のためだと思う。 PackageGeneratorは抽象クラスreportParamsとクラスpersonCreditReportParamsを作成しましたが、personCreditReportParamsクラスの変数を渡している間は要素を作成しません。 –
この場合、SoapClientオブジェクトは、実際に送信される前にXMLリクエストを変更するには、https://github.com/WsdlToPhp/PackageEws365/blob/develop/SoapClient/SoapClient.phpにあります。 https://github.com/WsdlToPhp/PackageEws365/blob/develop/generate.shの世代オプションを見てください。 –