2017-10-03 5 views
0

Im MagentoとStripeと今作業しており、統計モジュールを開発中です。そのモジュールでは、1日の料金の額を知りたい。私は解決策を得たが、それは本当に遅い。チャージを受けることが本当に必要ですか?この番号を取得するためにすべての?その本当に重いデータ。これまで1日あたりのトランザクション数を取得する

私のソリューション:

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; 
} 

希望あなたのいずれかが、私はロード時間を下げることができる方法の提案を得ましたか。

答えて

0

ページネーションでは、すべてのトランザクションをループしてカウントする必要があります。より良い解決策は代わりにwebhooksを使用することです。

顧客作成、料金請求または転送などのストライプアカウントで何かが発生したときには、それを認識するようにイベントがwebhookエンドポイント(ある場合)に送信されます。 charge.*イベントを聞いて、自分のデータベースでリアルタイムでそれらのイベントを追跡することができます。これにより、毎日APIをページ付けする必要がなくなります。

関連する問題