请输入完整的地址"添加/更新订阅者地址时出错


"Please enter a complete address" error when adding/updating subscriber's address

我正在使用MailChimp的API v3.0,在尝试更新订阅者的邮政地址时遇到问题。

我发送的数据是:

[method] => patch
[path] => lists/123456789/members/membershash
[url] => https://us13.api.mailchimp.com/3.0/lists/123456789/members/membershash
[body] => {"merge_fields":{"FNAME":"firstname","LNAME":"lastname","TITLE":"Mr","BDAY":"10'/11","TSTATUS":"approved","ADDRESS":{"addr1":"10811 International Drive","city":"Rancho Cordova","state":"CA","zipcode":"95670"}}}
[timeout] => 10
[headers] => PATCH /3.0/lists/123456789/members/membershash HTTP/1.0

得到的错误是:

400: Your merge fields were invalid. Please enter a complete address.

我已经尝试将其作为字符串发送(字段由双空格分隔,如导入文件模式中所述),即

10811 International Drive  Rancho Cordova  CA  95670

,但我得到了相同的错误。我做错了什么?

如果你还在看…我正在使用Drewm包装器,并通过以下方式更新邮件地址:

$subscriber_hash = $MailChimp->subscriberHash($email);
$result = $MailChimp->patch("lists/$list_id/members/$subscriber_hash", [
            'merge_fields' => [
            'FNAME'     =>  $firstname, 
            'LNAME'     =>  $lastname, 
            'ADDRESS'   => array
                (
                    'addr1'   => $addline1,
                    'addr2'   => $addline2,
                    'city'    => $city,
                    'state'   => $state,
                    'zip'     => $zip,
                    'country' => $country
                )
            ],
            'interests'    => [$interest_id => true],
        ]);
print_r($result);   

如果您不发送country的值,则会发生"输入完整地址"错误。

addr2country都是可选的,但是MailChimp秘密地要求你为country发送一个空字符串,而你可以完全忽略addr2

MailChimp支持人员告诉我:

您是对的,Address对象只需要参数是addr1、城市、州和zip。话虽如此,与性能的应用程序,"国家"参数将需要出现并被给予一个空字符串值。空字符串将解析为default_country。如果没有改变,那就是美国。

我理解这与……不完全一致文档。我会把这个反馈传递给我们的团队监督我们的模式,因为这会造成混乱。

如果您有一个外国地址怎么办?国家将被填写,但其中许多没有州和邮政编码的值。