Bonjour,
Voila je rencontre un petit problème avec mon système Stripe.
J'ai créer un système de subscription, j'ai voulu tester les WebHook pour recevoir des notifications.
Mon webhook me revoie bien Ok et Success mais je reçois pas le mail que je devrais recevoir pour me signaler le invoice.payment_failed
Route
Route::post(
'stripe/webhook',
'\Laravel\Cashier\Http\Controllers\WebhookController@handleWebhook'
);
WebhookController
<?php
namespace App\Http\Controllers\Users;
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
class WebhookController extends CashierController
{
public function handleInvoicePaymentFailed($payload)
{
\Stripe\Stripe::setApiKey("ma key stripe");
$input = @file_get_contents("php://input");
$endpoint_secret = "mon code whsec";
$sig_header = $_SERVER["HTTP_STRIPE_SIGNATURE"];
$event = null;
try {
$event = \Stripe\Webhook::constructEvent(
$payload, $sig_header, $endpoint_secret
);
} catch(\UnexpectedValueException $e) {
http_response_code(400); // PHP 5.4 or greater
exit();
} catch(\Stripe\Error\SignatureVerification $e) {
http_response_code(400); // PHP 5.4 or greater
exit();
}
if (isset($event) && $event->type == "invoice.payment_failed") {
$customer = \Stripe\Customer::retrieve($event->data->object->customer);
$email = $customer->email;
$amount = sprintf('$%0.2f', $event->data->object->amount_due / 100.0);
$header="MIME-Version: 1.0\r\n";
$header.='From:"test"<test.com>'."\n";
$header.='Content-Type:text/html; charset="uft-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message='
<html>
<body>
<div align="center">
<br />
<u>Problème de paiement survenue:</u>'. $amount .'<br />
</div>
</body>
</html>
';
mail($email, "CONTACT - Monsite.com", $message, $header);
}
}
}
Je vous remecie !
Bonjour.
Ce n'est pas logique ce que tu dis.
Car je ne vois pas pourquoi tu recevrais un email pour un échec de paiement, si le paiement s'effectue bien.
Ou alors, tu t'es mal exprimé et tu voulais dire que lorsque le paiement ne s'effectue pas, que tu ne reçois pas le mail correspondant, si c'est le cas, penses à le préciser.
oui, excuse moi j´ai simuler un paiement qui echoue avec stripe le webhook recois bien la requete mais l´email ne s´envoie pas.
@GregK: Je crois bien que tu n'as pas bien suivi ce qu'il a dit, c'est le mail de la part de Stripe qu'il ne reçoit pas.
Oui, mais cela etait juste pour un test et c´est la fonction email qui s´envoie pas c´est le mail() qui marche pas.
Normalement comme c´est ecrit dans le code quand le WebHook de stripe detecte un invoice.payment.failed il envoie un mail avec la fonction que j´ai ecrit mail() tout marche sauf je ne recois pas le mail