我正在尝试执行以下操作:
据我所知,我需要使用Web钩子,并创建了一个测试Web钩子来执行此操作,目前看起来像这样:
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_......");
// Retrieve the request's body and parse it as JSON
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
// Do something with $event_json
http_response_code(200); // PHP 5.4 or greater
我需要倾听的事件是:
customer.subscription.trial_will_end
但是,如何在Web挂钩中使用此事件来获取客户ID,然后将它们添加到计划中,同时为其收费?
亲切的问候, NIC
答案 0 :(得分:3)
根据您想要做什么,您可能根本不需要使用webhook。
如果您想在客户订购时收取1美元的安装费,那么3个月内不会向他们收取任何费用,然后开始按$ x /月(或任何其他间隔)收费,这是您应该做的:
trial_end
参数)这将产生以下结果:
要回答您的初始问题,发送的customer.subscription.trial_will_end
事件将在其subscription object属性中包含data.object
。然后,您可以通过查看customer
属性来使用此订阅对象来检索客户ID。
代码看起来像这样:
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_...");
// Retrieve the request's body and parse it as JSON
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
// Verify the event by fetching it from Stripe
$event = \Stripe\Event::retrieve($event_json->id);
// Do something with $event
if ($event->type == "customer.subscription.trial_will_end") {
$subscription = $event->data->object;
$customer_id = $subscription->customer;
}
http_response_code(200); // PHP 5.4 or greater