NuSoap についてはよくわかりませんが、残念ながら使用せざるを得ません。dotmailer Web サービス api Hereのサンプル コードに従おうとしています。購読者用のカスタム フィールドを追加できるようにする必要があります。
コード例では、カスタム/追加フィールドは次のように定義されています。
new SoapVar($FirstName,XSD_STRING,"string","http://www.w3.org/2001/XMLSchema");
私が今持っているコードは次のとおりです。
<?php
function subscribeUserEmail($email)
{
$username = "********";
$password = "********";
$postURL = "http://apiconnector.com/api.asmx?WSDL";
$contact = array (
"Email" => $email,
"AudienceType" => "B2C",
"OptInType" => "Single",
"EmailType" => "Html",
"ID" => -1,
"DataFields" => array(
"Keys" => array("TEST"),
"Values" => array("Name")
)
);
$params = array(
"username" => $username,
"password" => $password,
"contact" => $contact,
"addressbookId" => "******"
);
$client = new soapclient($postURL, true);
$error = $client->getError();
$result = $client->call('AddContactToAddressBook', $params);
echo "<h2>Request</h2>";
print("<pre>".$client->request."</pre>");
echo "<h2>Response</h2>";
print("<pre>".$client->response."</pre>");
echo "<h2>Debug</h2>";
print("<pre>".$client->debug_str."</pre>");
}
?>
$contact
配列がこれに変更された場合。
$contact = array (
"Email" => $email,
"AudienceType" => "B2C",
"OptInType" => "Single",
"EmailType" => "Html",
"ID" => -1,
"DataFields" => array(
"Keys" => array("TEST"),
"Values" => array(new SoapVar("Name",XSD_STRING,"string","http://www.w3.org/2001/XMLSchema") )
)
);
通常の SOAP クライアントで使用すると、コードは機能します。したがって、私の機能には他に問題はないと確信しています。
私は以下を使ってみました;
new soapval("string", XSD_STRING, "Name","http://www.w3.org/2001/XMLSchema");
SoapVar() メソッドの代わりに、プレーン テキストとして値を入力した場合と同じエラーが発生します。
NuSoap で SoapVar() の機能を複製するにはどうすればよいですか? これが唯一の問題のようです。