如何使用Stripe's Webhook
更新数据库中的用户?我有钩子工作只是不能让它更新数据库中的用户。
webhook
时如何在customer.subscription.created & customer.subscription.updated & customer.subscription.deleted
中呼叫客户?
更新:我有这个..
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);
}
?>
但现在我收到了这个错误:
[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
答案 0 :(得分:4)
此信息可在条带文档中找到。您必须安装Stripe PHP SDK。您可以使用composer或直接将其下载到项目供应商文件夹中来执行此操作:
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 test@example.com";
$cu->save();
您需要做的是从webhook有效负载中返回的信息中获取客户唯一ID,然后使用它来进行API调用。有效负载的响应主体是JSON格式。所以一定要解码JSON。