Mailchimp PHP api v.2,用户已存在或取消订阅返回错误

Mailchimp PHP api v.2,用户已存在或取消订阅返回错误,php,mailchimp,Php,Mailchimp,我正在使用Mailchimp v.2 API PHP包装来处理订阅。。。但是,如果列表中已经存在订阅者或订阅者已取消订阅,则会返回一个错误,我想知道一种方法,可以将其编码到以下位置:如果存在任何一种情况,它将继续运行代码而不显示错误。如果这是一个简单的问题,我很抱歉 $api_key = "XXXXXXXXX"; $list_id = "XXXXXX"; require('Mailchimp.php'); $Mailchimp = new Mailchimp( $api_key ); $Mail

我正在使用Mailchimp v.2 API PHP包装来处理订阅。。。但是,如果列表中已经存在订阅者或订阅者已取消订阅,则会返回一个错误,我想知道一种方法,可以将其编码到以下位置:如果存在任何一种情况,它将继续运行代码而不显示错误。如果这是一个简单的问题,我很抱歉

$api_key = "XXXXXXXXX";
$list_id = "XXXXXX";
require('Mailchimp.php');
$Mailchimp = new Mailchimp( $api_key );
$Mailchimp_Lists = new Mailchimp_Lists( $Mailchimp );
$merge_vars = array('FNAME'=>htmlentities($_POST['stripeFirstName']), 'LNAME'=>htmlentities($_POST['stripeLastName']) );
    $subscriber = $Mailchimp_Lists->subscribe( $list_id, array( 'email' => htmlentities($_POST['stripeEmail']) ), $merge_vars );

您需要使用
try
catch
。Mailchimp对什么地方出了问题非常罗嗦

try {
    $result = $Mailchimp_Lists->subscribe(
        $list_id,
        array(/* ... */), // primary subscriber data
        array(/* ... */), // merge fields
        'html', // email-type preference
        false // double-opt-in
    );
    // Action for successful subscribe attempt.
} catch (\Exception $e) {
    if ($e instanceof \Mailchimp_List_AlreadySubscribed) {
        // In case they are already subscribed:
        $errors[] = $e->getMessage();
    } else {
        // In case something else went wrong.
        $errors[] = 'There was an error adding your email to the list. Would you mind trying again?';
    }

    // Debug time!
    var_dump($errors);
}

您需要使用
try
catch
。Mailchimp对什么地方出了问题非常罗嗦

try {
    $result = $Mailchimp_Lists->subscribe(
        $list_id,
        array(/* ... */), // primary subscriber data
        array(/* ... */), // merge fields
        'html', // email-type preference
        false // double-opt-in
    );
    // Action for successful subscribe attempt.
} catch (\Exception $e) {
    if ($e instanceof \Mailchimp_List_AlreadySubscribed) {
        // In case they are already subscribed:
        $errors[] = $e->getMessage();
    } else {
        // In case something else went wrong.
        $errors[] = 'There was an error adding your email to the list. Would you mind trying again?';
    }

    // Debug time!
    var_dump($errors);
}

好的,现在我如何跳过错误而不是重复错误?我还需要它通过header()重定向到不同的页面,而不是回显错误。谢谢删除echo/var_dump语句,以支持header()函数。不过要注意,现在还没有输出。不过,听起来你好像要把目标转移到这里。如果您的初始问题已得到回答,请将其标记为已接受。或者,修改你的问题,更详细地说明你想要实现什么,你尝试了什么。好吧,现在我如何跳过错误而不是重复错误?我还需要它通过header()重定向到不同的页面,而不是回显错误。谢谢删除echo/var_dump语句,以支持header()函数。不过要注意,现在还没有输出。不过,听起来你好像要把目标转移到这里。如果您的初始问题已得到回答,请将其标记为已接受。或者,修改你的问题,更详细地说明你想要实现什么,你尝试了什么。