2016-07-12 13 views
2

Ich habe eine kleine Laravel-App bereitgestellt, die einen Benutzer zu einer Mailchimp-Liste abonniert. es ist sehr einfach, aber es funktioniert nichtMailchimp funktioniert nicht auf Produktion [laravel auf azurblau]

Hinweis auf die Produktion: ALLES ist in Localhost env und ein KONTAKTFORMULAR Adaequat (verwendet SMTP)

.env

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.sendgrid.net 
MAIL_PORT=587 
MAIL_USERNAME=AUSERNAME 
MAIL_PASSWORD=APASSWORD 
MAIL_ENCRYPTION=TLS 

MAILCHIMP_APIKEY=APIKEYHERE 
MAILCHIMP_LIST_ID=LISTIDHERE 

-Controller Fein

Newsletter::subscribe($request->email, [ 
       'firstName' => 'test', 
       'lastName' => 'tessst', 
       'listName' => 'whishlist' ], 'subscribers'); 

return response()->json([ 
        'status' => 'success', 
        'msg' => 'Subscribed successfully']); 

Laravel-Newsletter Config-Datei

<?php 

return [ 

    'apiKey'   => env('MAILCHIMP_APIKEY'), 


    'defaultListName' => 'subscribers', 

    'lists'   => [ 


     'subscribers' => [ 


      'id' => '5920168294', 
     ], 
     'whishlist' => [ 


      'id' => '8e553f3d39', 
     ], 
    ], 
]; 

Meine ich denke, dass dies etwas mit HTTPS zu tun hat (i das Problem behoben, indem eine Datei cacert.pem zugab und in der php.ini Referenzierung) wenn dies das Problem ist, wie kann ich das auf azurblau reparieren?

Und leider gibt es keine Fehlerausgabe, da es den Erfolg der Ajax-Aufruf zurückgibt. (Wenn, wie kann ich die Antwort von MailChimp erhalten, den Fehler zu überprüfen?)

Vielen Dank im Voraus.

+0

Verwenden Sie smpt oder api? – user2094178

+0

API Ursache ich verwende [spatie/laravel-newsletter] (https://github.com/spatie/laravel-newsletter) –

+0

vielleicht ist Ihre Website https und versucht Laden von Mailchimp-Skript von http? –

Antwort

2

Nun weiß ich nicht, was das Problem hier ist.

aber ich habe es geschafft, dies zu tun, wenn ich das Paket, das ich benutze das spatie/laravel-newsletter los ist und CURL stattdessen und API V3 verwendet.

$email = $request->email; 
    $listid = env('MAILCHIMP_LIST_ID'); 
    $apikey = env('MAILCHIMP_APIKEY'); 
    $server = substr($apikey, strpos($apikey, '-') + 1); 
    $auth = base64_encode('user:' . $apikey); 
    $data = array(
     'apikey'  => $apikey, 
     'email_address' => $email, 
     'status'  => 'subscribed', 
     'merge_fields' => array(
      'FNAME' => 'test1', 
      'LNAME' => 'test2', 
     ), 

    ); 
    $json_data = json_encode($data); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'http://'. $server.'api.mailchimp.com/3.0/lists/'. $listid .'/members/'); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 
     'Authorization: Basic ' . $auth)); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    return $result; 
Verwandte Themen