【问题标题】:Stripe subscription ending date and timeStripe 订阅结束日期和时间
【发布时间】:2017-01-07 14:54:37
【问题描述】:

我开始使用条带进行支付并设置了我的测试环境。一切正常,直到订阅即将结束。就像 Stripe 主页上的教程一样,您应该将订阅结束日期保存在我正在做的数据库中。

假设用户取消或订阅已结束。他正在尝试再次登录,并提示他再次注册订阅。我在这里获取日期并重新订阅用户:

//create subscription
$customer = \Stripe\Subscription::create(array(
    "customer" => $customer_id,
    "plan" => "test"
));

//get curent end period
$end_date = $customer->current_period_end;
//getting something like this 1472625732
$next_payment_date = date('Y-m-d',$end_date);

这让我从条带响应中获得日期。然后我将其转换为可以在 mysql 中使用的时间戳,然后插入它。一切正常,但我认为我的订阅取消得太早了。

在条纹中我看到了这个:

当前时期:

2016/08/30 to 2016/08/31

在我的数据库中,我看到2016-08-31 00:00:00,它在午夜取消订阅,但条纹表示订阅仍然有效。

在我的登录脚本中,我检查了数据库中的那个日期,它说我的订阅不活跃,这是不正确的。

我的问题来了,我怎样才能防止这种行为?有什么方法可以获取订阅结束的时间,或者是否有条带设置的默认时间?

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    问题是您从条纹获得的时间戳 1472625732 是 GMT:2016 年 8 月 31 日星期三上午 6:42:12 并且在此时间戳上调用 date('Y-m-d',$end_date); 之后,您输了( truncate) 时间部分 6:42:12,这导致在条带侧订阅结束于 2016 年 8 月 31 日上午 6:42:12 而根据您的数据库订阅结束2016 年 8 月 31 日上午 00:00:00

    【讨论】:

      猜你喜欢
      • 2014-09-27
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2021-06-02
      • 2016-03-20
      • 2017-08-20
      • 2020-05-08
      • 2020-09-26
      相关资源
      最近更新 更多