1

我在 laravel 中有这段代码,它以条带形式提取当前交易

    $dateCurrent = strtotime(date('Y-m-d h:i:s'));

    $this->transactions = \Stripe\BalanceTransaction::all([
        'available_on' => [
            'lte' => "{$dateCurrent}",
        ],
        'currency' => 'USD'
    ]);

    foreach ($this->transactions->data as $key => $value) {
        if ($key == 0) {
            $time = date('d', $value->available_on);
        }

        if ($time == date('d', $value->available_on)) {
            $this->trans[] = $value;
            $transactionCount = $key;
        }
    }

然后我试图为这样的每笔交易添加所有金额,

    $total = 0;

    foreach ($this->trans as $key => $value) {
        if ($key == 0) {
            $total = $value->amount;
        } elseif ($value->status == 'available') {
            $total = bcadd($value->amount, $total);
        }
    }

    dump($total);

编写此代码后,我得到了-94769.

我做对了吗?我如何代表-94769实际货币价值,例如99.18 USD

我对此的参考基于以下链接中的条带 API

https://stripe.com/docs/api?&lang=php#charge_object
https://stripe.com/docs/currencies#zero-decimal

这是我第一次将支付方式集成到 Web 应用程序中。所以我需要对金钱有更深入的了解。

4

1 回答 1

1

Stripe API 中的“金额”始终代表默认货币的最小单位。所以,美元是美分,日元是日元。

假设您的货币是美元,您只需除以 100 即可将任何金额转换为美元。

于 2018-09-27T21:14:15.070 回答