2016-09-19 108 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。如果沒有改變的話,美國。

據我所知,這與 文檔不完全一致。我會將這個反饋傳遞給我們的團隊, 監督我們的模式,因爲這可能會造成混淆。