3

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() の機能を複製するにはどうすればよいですか? これが唯一の問題のようです。

4

0 に答える 0