当前位置: 首页 > 知识库问答 >
问题:

如何处理不同的计划选项与条纹?

甄成弘
2023-03-14

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

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

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

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

我使用Laravel的收银台,它很好地处理订阅表,在那里它存储订阅名称,条纹计划id等。

但我希望稍后当用户准备创建一个活动时,检查他是否可以这样做,也就是说,他没有按照他的计划达到活动限制。

听起来我需要另一个类似于plan\u options的表格来存储所有这些内容。我关心的是如何将其连接到此订阅表?手动?在用户订阅后,我是否必须找到他选择的子选项名称,在plan_options表中找到它并使用id连接它们?这样做正确吗?

共有1个答案

詹甫
2023-03-14

您可以将计划\u选项保存到订阅计划元数据中,并将其保存到条带中。这样,所有东西都停留在一个地方,不需要同步。

您可以使用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中有字符串,而不是数字/整数。

 类似资料:
  • 我们有几个域对象具有可为空的字段。我们已经读到hibernate需要“raw”对象来正确映射它,所以我们的getter返回optionals。我们的域对象如下所示: 但现在我们在解决/绑定这些字段时遇到了问题。jspx文件。(显示和表单输入字段。)对于基本类型和字符串,我们可以通过定义自定义OptionalToStringConverter绕过这一点。 对其他域对象的可空引用仍然是一个问题。 我们

  • 我正在开发一个仅支持iPhone的iOS 8应用程序。我想只支持iPhone 4S的纵向模式设备。 我有一个图形设计,它采用全屏内容。我使用自动布局来处理视图,并使其适用于所有屏幕。但是,我使用一个小资产来管理从iPhone4S工作的设计。当我在iPhone6S/6看到它时,内容非常小,大量额外的空间被浪费了。 当设备分辨率变大时,我想增加字体大小、图像大小。这个应用程序中有很多屏幕。 例如,我在

  • 内核如何处理引导选项 绝大部分的内核引导选项的格式如下(每个选项的值列表中最多只能有十项): name[=value_1][,value_2]...[,value_10] 如果"name"不能被识别并且满足"name=value"的格式,那么将被解译为一个环境变量(比如"TERM=linux"或"BOOT_IMAGE=vmlinuz.bak"),否则将被原封不动的传递给 init 程序(比如"si

  • 我正在使用java-8进行多个Spring boot项目,但现在其中一个需要转移到java-11。所以我需要在笔记本电脑上安装两个版本。那么如何在同一台机器上为不同的项目处理不同的JAVA版本呢?

  • 我想处理不同的失败案例(返回为尝试)。 示例代码 如果是或只需打印消息,对于所有其他异常,打印堆栈跟踪。 然而,ex永远只是一个可丢弃的,因此是一个没有结果的类型测试(根据IntelliJ,类型Throwable的值不能也是StatsException.type) 更糟糕的是,我会遇到编译错误: 以惯用的方式处理不同的失败案例的最佳方式是什么?

  • 对于登录页面自动化,用户需要输入用户id、安全答案和密码。不同的环境有不同的用户。例如,qa和dev环境的用户具有不同的用户id、安全答案和密码。那么在自动化测试中如何妥善处理用户信息呢?我们可以将所有的属性存储在属性文件中,还有其他更好的解决方案吗?