在测试模式下运行条纹。 (直接施加到条带的仪表板)条纹测试订阅流明5.1
我已经创建用于100GBP量每年计费计划,用7天的试用
然而,以测试网络挂接我已经硬编码的trial_end:
$trialEnd = new DateTime();
$trialEnd->setTimestamp(time()+120);
$user = Users::find($this->user()['user_id']);
$user->subscription($stripe_plan['stripe_plan'])->trialFor($trialEnd)->create($data['stripeToken'], [
'email' => $this->user()['email']
]);
$user->save();
基本上一切顺利,但条形仪表板显示0英镑的第一张发票,一分钟后我收到订阅将在一分钟内结束。毕竟,订阅变成活动(来自测试)状态。
所有的webhooks,甚至第一次订阅添加响应我得到试用结束期而不是订阅结束。
如何获取subscription_ends_at时间戳?
所有网络挂接请求都具有以下时间戳:
{ "id": "evt_18baRrIzJLF7fe6PMDPYD0NM", "object": "event", "api_version": "2016-07-06", "created": 1469558315, "data": { "object": { "id": "sub_8tNBbqy0AmSk8p", "object": "subscription", "application_fee_percent": null, "cancel_at_period_end": false, "canceled_at": null, "created": 1469558268, "current_period_end": 1469558384, "current_period_start": 1469558268, "customer": "cus_8tNB1tWYw3Jw7L", "discount": null, "ended_at": null, "livemode": false, "metadata": { }, "plan": { "id": "yearly_200", "object": "plan", "amount": 20000, "created": 1469545724, "currency": "gbp", "interval": "year", "interval_count": 1, "livemode": false, "metadata": { }, "name": "Full Club Membership - Pay Anually", "statement_descriptor": "FULL MEMBERSHIP", "trial_period_days": 7 }, "quantity": 1, "start": 1469558268, "status": "trialing", "tax_percent": null, "trial_end": 1469558384, "trial_start": 1469558268 } }, "livemode": false, "pending_webhooks": 1, "request": null, "type": "customer.subscription.trial_will_end" }
所以,如果你看一下trial_start和trial_end一样的是current_period_start和current_period_end。
我虽然最初认为,如果这是当前时期..罚款,但试用期满后,本期不应该试一试。
有什么方法可以从Stripe api获取subscription_ends_at字段?而且,在试用期结束后,不应该用实际金额发送发票?
此外,我创建了一个没有试用期的订阅计划。客户订阅后的这个计划,我得到了正确的时间戳。
提前致谢!