【发布时间】:2019-03-26 20:29:03
【问题描述】:
我正在尝试设置即将开具的发票,以便通过条带进行计量计费。为此,我需要运行使用记录。我的理解是,需要运行使用记录才能生成准确的即将到来的发票。我创建了一个名为stripeUsageRecord() 的函数,我在生成发票之前调用了它。
public function stripeUsageRecord()
{
$authUser = auth()->user();
$sub_item = $authUser['subscription_item'];
\Stripe\Stripe::setApiKey(env("STRIPE_SECRET"));
return \Stripe\UsageRecord::create(array(
"quantity" => 11,
// "timestamp" => time(),
"timestamp" => 1540225312,
"subscription_item" => $sub_item,
"action" => "set"
));
}
这个函数确实实现了它想要的结果。我遇到的唯一问题是我无法动态设置时间戳。如果我运行静态时间戳(在订阅日期范围内),它会按照我想要的方式工作,而不是增加它。但是如果我使用 php time() 将时间戳设置为当前时间,它会增加数量(当我需要它来更新它时)。
(在我的代码中,数量由一个查询确定,该查询计算订阅时间范围内在该位置购物的所有用户。这里我只是添加一个数字,这样更容易理解。)
如何设置时间戳以动态更新数量,而不是将其添加到使用不同时间戳运行的先前使用记录之上?
【问题讨论】:
-
我对这个API一无所知,但是如果你想更新一些东西,你不应该使用一个名为
create()的函数吗?如果您在使用某些代码时遇到问题,请发布它。不要在代码中不起作用的部分“只添加一个数字”。 -
set将覆盖给定时间戳的使用量。如果您创建的新记录具有不同的时间戳,您是对的,它只会添加到期末收费的总额中,而不是覆盖。您可以使用选项aggregate_usage=last_during_period设置基础计划,以便在最终发票上仅使用时间戳的最后一条记录 -
@duck 你是对的。做了这些改变,它奏效了。如果您将其添加为答案,我会将其标记为正确。
标签: php stripe-payments unix-timestamp