2016-09-19 58 views
1

我正在使用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 

但我得到了同样的错误。我究竟做错了什么?

+0

同样的问题在这里。使用与API v2.0相同的格式。你有没有找到解决方案? – infused

+0

不,我最终为国家,城市等建立了多个地址字段。我仍然不知道正确的格式是什么。 :/ – Peter

回答

1

万一你还在寻找......我使用的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); 
0

“输入完整地址”错误会发生,如果你请勿为country发送值。

两个addr2country是可选的,但MailChimp偷偷需要你发送一个空字符串country,而你完全可以离开了addr2

MailChimp的支持告诉我:

你是正确的地址对象 是ADDR1,城市,州和邮编的唯一必需的参数。也就是说,为了与 的应用程序性能相当,“国家”参数需要 存在并且被赋予一个空字符串值。空字符串将 解析为default_country。如果没有改变的话,美国。

据我所知,这与 文档不完全一致。我会将这个反馈传递给我们的团队, 监督我们的模式,因为这可能会造成混淆。

相关问题