2016-07-04 7 views
2

Ich möchte die Kunden-E-Mail-Adresse abrufen, nachdem sie ein Produkt gekauft haben, damit ich ihnen einen Download-Link senden kann.Streifen: Abrufen einer Kunden-E-Mail-Adresse während einer Gebühr (Laravel 5.2)

Hier ist meine Verarbeitung der Ladung.

public function charge() 
{ 
    \Stripe\Stripe::setApiKey("sk_test_key"); 

    $token = $_POST['stripeToken']; 

    dd(\Stripe\Customer::retrieve($token)); 

    try { 
     $charge = \Stripe\Charge::create(array(
     "amount" => 10000, // amount in cents, again 
     "currency" => "usd", 
     "source" => $token, 
     "description" => "Example charge" 
     )); 
    } catch(\Stripe\Error\Card $e) { 
     flashWarning('An error occured'); 
     return back(); 
    } 

    $data = []; 

    Mail::send('emails.download',$data, function($message) 
    { 
     $message->to(CUSTOMER EMAIL)->subject('thank you for purchasing...'); 
    }); 

} 

In der unteren Hälfte des Verfahrens würde ich irgendwie die Kunden E-Mail-Adresse finden möge, damit ich ihr eine E-Mail schicken.

EDIT: Die Kunden sind keine Benutzer.

Antwort

0

retrive des Details des Benutzers oder E-Mail mit Auth dann mit "use" -Ansatz, um den E-Mail-Pass

// get email first. depends on how you store customer or user email 
$email = \Auth::user()->email; 

Mail::send('emails.download',$data, function($message) use ($email) 
{ 
    $message->to($email)->subject('thank you for purchasing...'); 
}); 
+0

Danke für die Hilfe. Allerdings habe ich vergessen zu erwähnen, dass die Kunden keine Nutzer sind. – DanielPahor

+0

so angeblich sollten Sie ein E-Mail-Feld in Form während der Einreichung der Ladung hinzufügen – xmhafiz

+0

Hey vielen Dank dafür. Ich habe das E-Mail-Feld in der Einreichung verwendet. Ich bin jedoch immer noch unsicher, wie man die E-Mail aus den Informationen extrahiert, die durch Stripe an das Back-End übergeben werden. – DanielPahor

1

Sie greifen nur die email Eigenschaft aus dem Customer Mitglied:

$customer = \Stripe\Customer::retrieve($token); 

Mail::send('emails.download',$data, function($message) use ($customer) 
{ 
    $message->to($customer->email)->subject('thank you for purchasing...'); 
}); 

Side Hinweis

Sie können alle Stripe-Ausnahmen mitabfangen, damit Sie eine Fehlermeldung richtig zurückgeben können. Viel Spaß:

$errors = collect([]); 
try { 
    //... 
} catch (Stripe\Error\Base $e) { 
    $errors->push($e->getMessage()); 
} catch (Exception $e) { 
    $errors->push($e->getMessage()); 
} 

if ($errors->count() > 0) { 
    return back()->withErrors(['message' => implode('. ', $errors->toArray()]); 
}