Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stripe PHP Subscription Webhook

How do I use Stripe's Webhook to update a user in the database? I have the hook working just cant get it to update a user in the db.

How do I call in a customer in webhook when customer.subscription.created & customer.subscription.updated & customer.subscription.deleted?

UPDATE: I have this..

require_once 'mainfile.php';
require_once 'config.php';
require_once 'Stripe/init.php';


// Retrieve the request's body and parse it as JSON
$input = file_get_contents("php://input");
$event = json_decode($input);

$customer_id = $event->data->object->customer;
$customer = \Stripe\Customer::retrieve($customer_id);
$email = $customer->email;
$start = $event->data->object->current_period_start;
$end = $event->data->object->current_period_end;
$status = $event->data->object->status;



if ($event->type == "customer.subscription.created") {


    hook($email, $start, $end, $status);

}

if ($event->type == "customer.subscription.deleted") {

    hook($email, $start, $end, $status);

}

if ($event->type == "customer.subscription.updated") {

    hook($email, $start, $end, $status);

}



?>

But now I get this error:

[05-Mar-2016 23:52:56 America/New_York] PHP Warning:  mysqli_connect(): Headers and client library minor version mismatch. Headers:100023 Library:100106 in /home/sociagkf/public_html/dashboard/mainfile.php on line 25
like image 1000
Blood_Wolf89 Avatar asked Sep 25 '22 04:09

Blood_Wolf89


1 Answers

This information can be found in the stripe docs. You must install The Stripe PHP SDK. You can do this using composer or download it directly into your projects vendor folder:

https://github.com/stripe/stripe-php

https://stripe.com/docs/api/php#update_customer

\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");

$cu = \Stripe\Customer::retrieve("cus_81SwskJbGMS8UI");
$cu->description = "Customer for [email protected]";
$cu->save();

What you need to do is get the customers unique id out of the information returned in the webhook payload and then use that to make the API call. The response body of the payload is in JSON format. So be sure to decode the JSON.

like image 124
John Foley Avatar answered Nov 15 '22 13:11

John Foley