每天获取交易次数

时间:2017-10-03 11:41:21

标签: php magento stripe-payments

我正在与Magento和Stripe合作开发统计模块。在那个模块中,我想知道每天的收费金额。我有一个解决方案,但它真的很慢。获得费用是否真的是必要的:一切都是为了得到这个数字?它真的很重。

到目前为止我的解决方案:

public function getPaidInvoicesByDate($begin, $end) {
    Mage::log('BEGIN: ' . $begin . ' END: ' . $end, null, 'customerLog.log');
    $begin = strtotime($begin);
    $end = strtotime($end);
    $end = strtotime('+1 day', $end);

    $transactions = array();

    $this->setStripeKey();

    // Get alle invoices
    $charges = \Stripe\Charge::all(array(
        "limit" => 100,
        "created[gte]" => $begin,
        "created[lte]" => $end
    ));

    foreach ($charges->autoPagingIterator() as $charge) {
        $createdAt = explode(' ' ,date('d-m-Y H:m:s', $charge->created))[0];

        $transactions[$createdAt] += 1;
    }

    return $transactions;
}

希望你们有人建议我如何降低加载时​​间?

1 个答案:

答案 0 :(得分:0)

分页要求您循环所有事务以计算它们。更好的解决方案是使用webhooks代替。

每当Stripe帐户中发生某些事情(例如客户创建,收费或转移)时,我们都会向webhook端点(如果有)发送事件,以便它了解它。您可以监听charge.*个事件,并在您自己的数据库中实时跟踪这些事件。这样可以避免每天对API进行分页。