Specifically, s2member does not seems to properly decode the specific data center (dc as the MailChimp API calls it) associated with the MailChimp API Key. The specific host s2member should access when using MailChimp's API is dependent upon the data center associated with the account.
For example, API keys are in the format xxxxxxxxxxxxxxx-[dc_id] where dc_id could be "us1" or "us2" or "uk1" or "uk2".
Based on the data center of the API key, s2member needs to submit its API request to different hosts. For example, my data center in my API key is "us2", so my API requests need to go to:
http://us2.api.mailchimp.com/1.3/
According to s2member's MailChimp logs, all my requests are going to the host of "api.mailchimp.com". The logs show an API call as successful, but members are not actually added to my list due to the incorrect (or missing) data center.
See MailChimp API docs:
http://apidocs.mailchimp.com/rtfm/
See s2Member's MailChimp API Logs:
...
'api_email_type' => 'html',
'api_double_optin' => true,
'api_update_existing' => false,
'api_replace_interests' => true,
'api_send_welcome' => false,
'api_response' => 'OK',
'api_success' => true,
'api_properties' =>
NC_MCAPI::__set_state(array(
'version' => '1.3',
'errorMessage' => '',
'errorCode' => '',
'apiUrl' =>
array (
'scheme' => 'http',
'host' => 'api.mailchimp.com',
'path' => '/1.3/',
'query' => 'output=php',
),
'timeout' => 300,
'chunkSize' => 8192,
'api_key' => 'XXXXXXXXXXXXXXXXXXXXXX-us2',
'secure' => false,
)),
I would also suggest s2Member use SSL for the MailChimp API, where possible.