我在项目中使用Stripe API和Stripe Webhooks。
我已完成所有设置并正常工作。在我的Stripe帐户中,我有一个以14 day Free Trial
开头的订阅计划。
在14天的免费试用期之后,我需要使用Stripe Webhook来通知服务器successfull payment
或failed payment
。
我尝试使用此变量进行成功付款:
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
$stripe_c_id = $event_json->data->object->customer;
if ($event_json->type == 'invoice.payment_succeeded') {
//do my stuff here///
}
但是,一旦有人订阅,Stripe就会通过网络钩子发送invoice.payment_succeeded
!但是我只需要在免费试用后得到通知。
这在我的系统中引起了一个小问题。
因此,我想知道是否为此目的需要在Stripe webhooks中寻找其他变量?
谢谢。
编辑:
这很令人困惑。我发现了这个:https://stripe.com/docs/billing/lifecycle
已发送一个customer.created事件,表明有一条客户记录 已成功创建。
发送了一个customer.subscription.created事件,指示 订阅已创建。
在尝试收费之前,先起草发票,然后确定发票 被制造。在invoice.created和invoice.finalized事件是 已发送,表明该发票是为第一次开具发票 时间段。
已发送一次收费成功事件,表明该客户的 付款方式已成功收取。
已发送一个invoice.payment_succeeded事件,表明 发票已成功标记为已付款。
如其建议,它将发送charge.succeeded
事件以指示付款成功。
但是,如果付款成功,我们为什么需要invoice.payment_succeeded
之后呢?!