使用Laravel在Stripe上使用佣金给出错误的格式价格

问题描述 投票:0回答:2

我试图向客户收费,然后在我和拥有该产品的所有者之间分配付款。我遇到的问题是,如果产品的所有者(在这种情况下是一些文件上传)为他们的价格插入了一个99.99的值,那么有人试图结账,一旦他们输入他们的Stripe信用卡信息,他们就会收到此错误:

enter image description here

在这种情况下,产品的价格是99.99美元。

这是我收费的地方:

 try {
     $charge = Charge::create([
    'amount' => $file->price * 100,
    'currency' => 'usd',
    'source' => $request->stripeToken,
    'application_fee' => $file->calculateCommission() * 100
 ], [
    'stripe_account' => $file->user->stripe_id
 ]);

这是文件模型上的calculateCommission方法:

public function calculateCommission() {
    return (config('marketplace.sales.commission') / 100) * $this->price;
}

在这种情况下,config('marketplace.sales.commission')只有20(20%)

如果用户输入100的价格(100美元),则该费用成功

如何使用十进制格式处理此佣金?或者我做错了什么?

php laravel stripe-payments stripe-connect
2个回答
0
投票

你需要在你的情况下正确格式化申请费,这是1999.8。申请费应为整数。您可以为应用程序费用添加完善逻辑,它将起作用。

application_fee(CONNECT ONLY可选):以美分为单位的费用,将收取费用并转移到应用程序所有者的Stripe帐户。要使用申请费,必须使用Stripe-Account标头,OAuth密钥或目标参数代表其他帐户进行申请。有关更多信息,请参阅应用程序费用文档。

在你的情况下,它不是1999.8分,它应该是2000。


0
投票

正如@spencdev评论的那样,地板似乎就是诀窍。我测试过它:

99.99, .87, 1219.77, 3.00, 10.01, 100.00

所有的工作,并通过条纹

floor($file->calculateCommission() * 100)
© www.soinside.com 2019 - 2024. All rights reserved.