1

我在使用 nusoap 将订阅者添加到 dotmailer 中的特定地址簿时遇到问题。我使用CreateContact方法向所有联系人添加通用订阅者没有问题,但是当我尝试使用AddContactToAddressbook方法时,我就是不工作。底部使用的 if 语句返回成功,但$result变量中不存在任何内容。

<?php
function subscribe($email, &$result)
{
    global $postURL, $username, $password;

    $addressBookId = "######";
    $contact = array("Email" => $email, "EmailType" => "Html");
    $params = array("username" => $username, "password" => $password, "contact" => $contact, "addressbookId" => $addressBookId);

    $client = new soapclient($postURL, true);
    $error = $client->getError();
    $result = $client->call('AddContactToAddressbook', $params);

    if($client->fault) {
        $rv = false;
    } else {
        // Check for errors
        if($error) {
            $rv = false;
        } else {
            $rv = true;
        }
    }
    return $rv;
}

if(subscribe("test@test.com", $result)) {
    echo "success<br />";
    print_r($result);
} else {
    echo "failed<br />";
}
?>

此代码按原样工作,仅更改

$result = $client->call('AddContactToAddressbook', $params);

$result = $client->call('CreateContact', $params);

但是订阅者不在任何特定列表中。有谁知道我可能做错了什么。

ps$addressBookId变量已被有意清除,我没有尝试使用 '######' 作为值来运行它,以防您想知道。并且一旦在生产中,该$result变量将不会随函数返回。

谢谢

4

1 回答 1

1

采用

$result = $client->call('AddContactToAddressBook', $params);

B账面资本

于 2012-09-07T14:28:54.723 回答