如何使用Stripe处理不同的计划选项?

时间:2016-01-06 08:51:04

标签: php laravel stripe-payments laravel-cashier

我使用的是Laravel和Stripe。我的应用程序中有5种不同的订阅计划。每个计划都有自己的一组选项,例如

基本计划   - 最多活动 - 20   - 最多电子邮件 - 100

专业计划   - 最多活动 - 40   - 最多电子邮件 - 200

如何在我的数据库中表示这些选项?

我使用Laravel的收银员,很好地处理订阅表,它存储订阅名称,条带计划ID等。

但我想稍后在用户即将创建广告系列时检查他是否可以执行此操作,即根据他的计划未达到广告系列限制。

听起来我需要另一张像plan_options这样的桌子,我会存储所有这些内容。我担心的是如何将它连接到此订阅表?手动?在用户订阅之后,我是否必须找到他选择的子信令名称,在plan_options表中找到它并使用id连接它们?这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以将订阅计划元数据中的plan_options保存到Stripe中。这样,一切都停留在一个地方,并且不需要同步。

enter image description here

您可以使用API​​访问元数据,如下所示。

示例请求:

\Stripe\Stripe::setApiKey("sk_test_ascfadfaeadsfadsfasdfasdfV");

\Stripe\Plan::retrieve("pro");

响应示例:

Stripe\Plan JSON: {
  "id": "pro",
  "object": "plan",
  "amount": 1000,
  "created": 1453123864,
  "currency": "usd",
  "interval": "month",
  "interval_count": 1,
  "livemode": false,
  "metadata": {
    "campaigns_limit": "40",
    "emails_limit": "200"
  },
  "name": "Pro Plan",
  "statement_descriptor": null,
  "trial_period_days": 30
}

随着许多订阅计划的实施,集中信息将消除许多复杂性。

  

PS:响应中包含字符串,而不是JSON中的数字/整数。