Stripe API - 下一个付款日期

dag*_*da1 5 stripe-payments

我使用条带API将我的客户签署为每月定期结算.

在下次付款到期时我如何显示此响应:

"subscription": {
    "current_period_end": 1306060846,
    "status": "trialing",
    "plan": {
      "interval": "month",
      "amount": 1000,
      "trial_period_days": 0,
      "object": "plan",
      "id": "Basic"
    },
    "current_period_start": 1305974416,
    "start": 1305974416,
    "object": "subscription",
    "trial_start": 1305974416,
    "trial_end": 1306060846,
    "customer": "O8ygDbcWW9aswmxctU9z",
  },
  "id": "O8ygDbcWW9aswmxctU9z"
}
Run Code Online (Sandbox Code Playgroud)

Sac*_*dir 9

$timestamp = "2306060846";
$next_payment_date = date('Y-m-d',$timestamp));
Run Code Online (Sandbox Code Playgroud)

它为您提供Ymd格式的时间

  • 我该如何扩展我的答案 (2认同)

小智 8

trial_end gives the next_payment_date in timestamp.
Run Code Online (Sandbox Code Playgroud)

您可以使用php中的日期函数将其转换为日期格式.

  • 呃,这是对的吗?这是一个老帖子,所以也许它曾经是正确的,但它似乎并不正确.听起来更像是'current_period_end`(时间戳)更有可能这样做 (2认同)

Sag*_*ani 5

您可以按如下方式检查订阅状态:

customer = Stripe::Customer.retrieve("cus_7G9REJXtaW05QY")
subscription = customer.subscriptions.retrieve("sub_7HFIqkWIDqEhho")

if subscription.status == 'trialing'
  next_payment_date = Time.at(subscription.trial_end).strftime("%B %d, %Y")
end
Run Code Online (Sandbox Code Playgroud)

跟踪结束后,您可以检查current_period_end订阅中的属性

next_payment_date = Time.at(subscription.current_period_end).strftime("%B %d, %Y")
Run Code Online (Sandbox Code Playgroud)

此外,current_period_end如果您只有一个月的试用期,则可以使用。这在所有情况下都有效。

PS:对于状态检查,单词是trialing和不是trialling,如果我没记错,Stripe团队有拼写错误。:-)